当前位置: 首页 > news >正文

常量和变量

常量

常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如123,145.88,'m',TRUE等。常量,用于记录程序中不可更改的数据。

分类

1、整型常量,表示整数的常量。

表示形式:  

1)十进制形式。如99、-1。  

2)八进制形式。以数字0打头,由0-7构成。如012,表示八进制整数12,即12(8)。  

3)十六进制形式。以0x打头,如0x12A,表示十六进制整数12A,即12A(16)。

2、实型常量:如3.1、-6.1E+2(科学记数法)。

3、字符常量:是用单引号括起来的字符,如 'k' ,'5','%'。

常量的定义方式

1、#define 宏常量

2、const修饰的变量

数值(文字常量)

在计算机中,文字是指在程序中直接用符号表示的数值。

数值是指直接参加运算的数。出现在程序中的数值,它的值在程序运行过程中是不能被改变的,故又称为文字常量。

一个具体的数值称为文字常量。如:i=255; area=r*r3.14;

所谓常量,其实是特殊的变量,固定不变的值,有且只有一次赋值。

定义常量需要在定义变量的语法基础上加上一个关键字修饰。

符号常量

一个常量可以直接调用(如124,'A'),也可以给常量取个名字,可以用一个标识符代表它,这就是符号常量。

语法格式:#define 符号常量名 数值

例如: #define MaxChar 255 #define PI 3.14

定义符号常量时不能用赋值符

#define PI=3.14是错误的。

由于define 是预处理指令,语句不能以分号结尾。

注:C++源程序中以#开头、以换行符结尾的行称为预处理命令。预处理命令不是C++语言的语法成分,在编译前由预处理器执行,在目标程序中,不含预处理指令对应的机器码。因此,预处理命令不以分号结尾。

常变量

C++为符号常量提供了一种新方法,

语法格式:const 数据类型 符号常量名 = 数值;

用const修饰后,变量的值就不能改变了,实质上是一种“常变量”。

例如: const short int MaxChar=255; const float PI=3.14;

在定义常变量时一定要赋初值。

比较

文字常量符号常量常变量
i=255;area=rr3.14;#define MaxChar 255 #define PI 3.14

const short int MaxChar=255; const float PI=3.14;

在程序中直接使用数值有两个问题:

(1)可读性差 ;

(2)可维护性差 ;

与直接使用文字常量相比,使用符号常量增强了程序的可读性,可维护性。

例1:输入半径r,求圆的周长及面积。

#include<cstdio>       
//调用iostream库,否则使用printf和scanf语句编译出错
using namespace std;          
const double PI=3.1415926;    //PI是符号常量。代表3.1415926int main()
{float r,c,s;          //定义实型变量printf("r=");       //显示提示符r=scanf("%f",&r);//输入r的值,&符号不能漏掉c=2*PI*r;           //计算圆的周长s=PI*r*r;            //计算圆的面积printf("c=%.2f s=%.2f\n",c,s);   //显示计算结果,结果保留2位小数 
}

说明:程序中定义的PI代表常量3.1415926,在编译源程序时,遇到PI就用常量3.1415926代替,PI可以和常量一样进行运算。C++语言规定,每个符号常量的定义占据一个书写行,而且符号常量不能被再赋值。

拓展

通常符号常量名用大写,而变量名用小写,以便于区别。

使用符号常量的好处:

1)增加了程序的可读性。比如例1程序中,见到PI就知道它代表圆周率,定义符号常量名时应该尽量使用见名知意的常量名。

2)增加了程序的易改性。比如例1程序中,只需改动一处,程序中的所有PI都会自动全部代换,做到“一改全改”。

常量是有类型的数据,变量在某一固定时刻用来存储一个常量,因此也应有相应的类型。如整型变量用来存储整数,实型变量用来存储实数。

变量一经定义系统就在计算机内存中为其分配一个存储空间。在程序中使用到变量时,就在相应的内存中存入数据或取出数据,这种操作称为变量的访问

变量

在程序运行时会产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每一个内存单元都用一个标识符来标识。

往往这些内存单元,我们称之为变量,定义的标识符就是变量名,内存中存储的数据就是变量的值。

变量是存储数据的内存区域,变量名是这块区域的名字。变量之所以叫变量是因为在程序运行的过程中变量标识的内存区中的数据可以改变。

在C++中变量取名要遵循标识符的构成规则。

声明变量

语法格式:数据类型 变量名;

也可以理解为:数据类型 变量名1,变量名2,…,变量名n;

例如:int a;

int a,b,c;

extern 数据类型 变量名;

extern int a,b;

变量的命名

变量名应遵循自定义标识符的命名规则。

建议使用“见名知义”的原则,即用一些有意义的单词作为变量名。

1、由任意顺序的大小写字母、数字和下划线组成;

2、不能以数字开头;

3、不能是关键字;

4、区分大小写;

5、变量名最好见名知意;

给变量赋值

1、给变量赋初值

格式:

数据类型 变量名;

变量名=变量初始值;

int a;

a=3;

2、多个变量同时赋值

格式:数据类型 变量名1=初值1,变量名2=初值2,…,变量名n=初值n;

int a=10,b=5,c=9;

// 变量声明extern int a, b;
int main () {int a, b;  // 变量定义a = 23;   // 初始化b = 25;return 0;
}

程序中可以多次声明一个变量,但变量在某个文件、函数或者代码块中只能被定义一次,如果多个变量赋同一个值,需要分别赋值。

变量的数据类型

变量在使用之前需要先声明和定义。定义变量时必须先声明变量的数据类型,为变量赋值时要赋予和变量同一类型的值。

在c++中变量的数据类型分为两种:预定义类型和自定义数据类型。

预定义类型

整型(int 4个字节)

字符型 (char)

浮点型:单精度(float) 双精度(double)

布尔型 (bool)

无类型void (空类型)

宽字符型(wchar_t)

指针类型

自定义类型

数组、结构体(struct)、联合体(union)、枚举(enum).

类型修饰符: signed,unsigned,short,long

一些基本类型可以使用一个或者多个类型修饰符进行修饰。

例如:

signed int a;有符号整数

short int a;短整型,2个字节

long int a;长整型,4个字节

无类型

无类型void (空类型):关键字void,只能用于指针型变量,函数返回值和函数参数。

相关文章:

常量和变量

常量 常量是指在程序中使用的一些具体的数、字符。在程序运行过程中&#xff0c;其值不能被更改。如123,145.88,m,TRUE等。常量&#xff0c;用于记录程序中不可更改的数据。 分类 1、整型常量&#xff0c;表示整数的常量。 表示形式&#xff1a;   1&#xff09;十进制形…...

Go语言的使用

在安装Go和配置镜像时&#xff0c;可以根据操作系统和网络环境来选择适合的步骤。以下是详细的安装步骤和镜像配置&#xff1a; 1. 安装Go 1.1 通过官方下载 访问 Go的官方下载页面 下载适合操作系统的安装包&#xff08;Windows、macOS 或 Linux&#xff09;。安装包下载完…...

详解CRC校验原理以及FPGA实现

文章目录 一、什么是CRC校验&#xff1f;二、实现CRC校验原理以及步骤2.1 用多项式表示二元码数据2.2 选择一个生成多项式作为校验2.3 计算CRC校验码 三、CRC判断数据是否错误的原理以及步骤3.1 将收到的数据与生成多项式求余3.2 数据发生错误再进行CRC校验判断 四、FPGA实现CR…...

企业如何通过架构蓝图实现数字化转型

数字化转型的关键——架构蓝图的力量 在当今的商业世界&#xff0c;数字化转型已经不再是一个选择&#xff0c;而是企业生存与发展不可回避的战略行动。企业希望通过数字化提高效率、增强灵活性&#xff0c;并为客户提供更好的体验。然而&#xff0c;数字化转型不仅仅涉及技术…...

React第十三章(useTransition)

useTransition useTransition 是 React 18 中引入的一个 Hook&#xff0c;用于管理 UI 中的过渡状态&#xff0c;特别是在处理长时间运行的状态更新时。它允许你将某些更新标记为“过渡”状态&#xff0c;这样 React 可以优先处理更重要的更新&#xff0c;比如用户输入&#x…...

IDEA使用Maven Helper查看整个项目的jar冲突

在插件市场安装Maven Helper&#xff0c;安装好后&#xff0c;重启IDEA&#xff1b;双击打开可能存在jar冲突的pom文件&#xff1b;在右侧面板查看冲突,text是引入的依赖明细&#xff0c;点击Dependecy Analyzer选项卡即可查看冲突的jar。...

uniapp项目 存储数据到手机本地

打开manifest.json&#xff0c;在App权限配置中&#xff0c;添加读取和写入的权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/&g…...

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章

随着医疗科技快速进步与广泛应用&#xff0c;医疗信息的规模正在迅速扩张&#xff0c;如何有效管理这些医疗数据成为了关键议题。 医疗数据不仅包括传统的纸质病历&#xff0c;还有电子病历、实验室检测结果、医学影像等多样化的数字信息。为确保这些数据能为临床决策、科研分析…...

vue使用高德地图实现轨迹显隐

<template><div><el-button type"primary" click"pathShowOrHide">轨迹显/隐</el-button><div id"container" /></div> </template><script> import AMapLoader from amap/amap-jsapi-loaderex…...

Maven(20) 如何使用Maven进行版本管理?

Maven提供了一套强大的版本管理机制&#xff0c;允许开发者管理项目的版本号&#xff0c;并在不同的版本之间进行升级和降级。以下是如何使用Maven进行版本管理的详细步骤和代码示例&#xff1a; 步骤 1: 定义项目版本 在pom.xml文件中&#xff0c;你需要定义项目的版本号。版…...

AWS RDS MySQL内存使用

1. AWS RDS所拥有的内存&#xff08;实例类型&#xff09;&#xff0c;和数据库能够使用的内存是不同的。RDS实例为操作系统和 RDS 管理进程预留了内存&#xff0c;数据库使用内存大小&#xff0c;小于数据库实例类的硬件规格中所示的值&#xff08;以 GiB 为单位&#xff09;[…...

Vue指令:v-else、v-else-if

目录 1.语法&#xff1a; 2. 题目 3.页面展示 4.结构 1.语法&#xff1a; 1.作用&#xff1a;辅助v-if进行判断渲染 2.语法&#xff1a;v-else 、v-esle-if"表达式" 2. 题目 <!DOCTYPE html> <html lang"en"> <head><meta chars…...

基于SSM志愿者招募系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;志愿组织管理&#xff0c;组织信息管理&#xff0c;组织申请管理&#xff0c;志愿活动管理活动报名管理 用户账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;…...

数学建模与优化算法:从基础理论到实际应用

数学建模和优化算法&#xff0c;它们不仅帮助我们理解和描述复杂系统的行为&#xff0c;还能找到系统性能最优化的解决方案。本文将从基础的数学理论出发&#xff0c;逐步深入到各种优化算法&#xff0c;并探讨它们在实际问题中的应用。 思维导图文件可获取&#xff1a;https:…...

微信小程序生成二维码

目前是在开发小程序端 --> 微信小程序。然后接到需求&#xff1a;根据 form 表单填写内容生成二维码&#xff08;第一版&#xff1a;表单目前需要客户进行自己输入&#xff0c;然后点击生成按钮实时生成二维码&#xff0c;不需要向后端请求&#xff0c;不存如数据库&#xf…...

自由软件与开源软件:异同与联系

自由软件与开源软件&#xff1a;异同与联系 随着信息技术的快速发展&#xff0c;自由软件运动与开源软件运动成为推动软件开发领域变革的重要力量。虽然这两个概念在日常对话中常被交替使用&#xff0c;但它们各自有着不同的理念和发展历程。本文将探讨自由软件运动与开源软件…...

Vue中ref、reactive、toRef、toRefs的区别

一、ref、reactive setup 函数中默认定义的变量并不是响应式的&#xff08;即数据变了以后页面不会跟着变&#xff09;&#xff0c;如果想让变量变为响应式的变量&#xff0c;需要使用 ref 和 reactive 函数修饰变量。 ref 函数可以把基本类型变量变为响应式引用reactive 函数…...

凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。

图1&#xff1a;同步发电机稳态相量图 若发电机为凸极式&#xff0c;由于凸极机正、交轴同步电抗不等&#xff0c;即xd≠xq&#xff0c;因此必须先借助虚构电动势 E ˙ Q E ˙ q − ( x d − x q ) I ˙ d \dot{E}_Q\dot{E}_q-(x_d-x_q)\dot{I}_d E˙Q​E˙q​−(xd​−xq​)…...

systemctl restart NetworkManager 重启后,文件/etc/resolv.conf修改失败

如果你在重启 NetworkManager 之后发现无法修改 /etc/resolv.conf 文件,这是因为 NetworkManager 会自动管理这个文件 为了解决这个问题,你可以采取以下两种方法之一: 方法一:禁用 NetworkManager 服务 使用以下命令停止 NetworkManager 服务:sudo systemctl stop Netwo…...

Admin.NET源码学习(5:swagger使用浅析)

直接启动Admin.NET.Web.Entry项目&#xff0c;会弹出swagger登录验证框&#xff0c;虽然采用Furion简化了项目加载过程及配置&#xff0c;但是学习源码过程就比较恼火&#xff0c;很多设置及功能搞不清楚到低是怎么启用的&#xff0c;本文记录学习Admin.NET项目中swagger的设置…...

运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.

报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符&#xff0c;最后运行&#xff1a;npm run lint --fix...

RKNN开发环境搭建2-RKNN Model Zoo 环境搭建

目录 1.简介2.环境搭建2.1 启动 docker 环境2.2 安装依赖工具2.3 下载 RKNN Model Zoo2.4 RKNN模型转化2.5编译C++1.简介 RKNN Model Zoo基于 RKNPU SDK 工具链开发, 提供了目前主流算法的部署例程. 例程包含导出RKNN模型, 使用 Python API, CAPI 推理 RKNN 模型的流程.   本…...

mq安装新版-3.13.7的安装

一、下载包&#xff0c;上传到服务器 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 二、 erlang直接安装 rpm -ivh erlang-26.2.4-1.el8.x86_64.rpm不需要配置环境变量&#xff0c;直接就安装了。 erl…...

LeetCode第244题_最短单词距离II

LeetCode第244题&#xff1a;最短单词距离II 问题描述 设计一个类&#xff0c;接收一个单词数组 wordsDict&#xff0c;并实现一个方法&#xff0c;该方法能够计算两个不同单词在该数组中出现位置的最短距离。 你需要实现一个 WordDistance 类: WordDistance(String[] word…...

Razor编程中@Helper的用法大全

文章目录 第一章&#xff1a;Helper基础概念1.1 Helper的定义与作用1.2 Helper的基本语法结构1.3 Helper与HtmlHelper的区别 第二章&#xff1a;基础Helper用法2.1 无参数Helper2.2 带简单参数的Helper2.3 带默认值的参数2.4 使用模型作为参数 第三章&#xff1a;高级Helper用法…...

leetcode 386. 字典序排数 中等

给你一个整数 n &#xff0c;按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。 示例 1&#xff1a; 输入&#xff1a;n 13 输出&#xff1a;[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2&#xff1a; 输入&#xff1a;n 2…...

Go 语言中switch case条件分支语句

1. 基本语法 package main import "fmt" func main() {var extname ".css"switch extname {case ".html":fmt.Println("text/html")case ".css":fmt.Println("text/css") // text/csscase ".js":fmt.…...

部署DNS从服务器

部署DNS从服务器的目的 DNS域名解析服务中&#xff0c;从服务器可以从主服务器上获得指定的区域数据文件&#xff0c;从而起到备份解析记录与负载均衡的作用&#xff0c;因此通过部署从服务器可以减轻主服务器的负载压力&#xff0c;还可以提升用户的查询效率。 注意&#xf…...

【人工智能 | 项目开发】Python Flask实现本地AI大模型可视化界面

文末获取项目源码。 文章目录 项目背景项目结构app.py(后端服务)index.html(前端界面)项目运行项目图示项目源码项目背景 随着人工智能技术的快速发展,大语言模型在智能交互领域展现出巨大潜力。本项目基于 Qwen3-1.7B 模型,搭建一个轻量化的智能聊天助手,旨在为用户提…...

如何使用 Redis 快速实现布隆过滤器?

以下是使用 Redis 实现布隆过滤器的两种方案&#xff0c;结合原理说明和操作步骤&#xff1a; 方案一&#xff1a;手动实现&#xff08;基于 Redis Bitmap&#xff09; 原理 利用 Redis 的 SETBIT 和 GETBIT 操作位数组&#xff0c;结合多个哈希函数计算位置。 步骤 确定参数…...