常量和变量

常量

常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。如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**r*3.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,求圆的周长及面积。

cpp 复制代码
#include<cstdio>       
//调用iostream库,否则使用printf和scanf语句编译出错
using namespace std;          
const double PI=3.1415926;    //PI是符号常量。代表3.1415926

int 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;

cpp 复制代码
// 变量声明

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,只能用于指针型变量,函数返回值和函数参数。

相关推荐
----云烟----20 分钟前
QT中QString类的各种使用
开发语言·qt
lsx20240624 分钟前
SQL SELECT 语句:基础与进阶应用
开发语言
开心工作室_kaic1 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it1 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康1 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神1 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
机器视觉知识推荐、就业指导2 小时前
C++设计模式:建造者模式(Builder) 房屋建造案例
c++
宅小海2 小时前
scala String
大数据·开发语言·scala
qq_327342732 小时前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍2 小时前
Scala的Array数组
开发语言·后端·scala