常量是什么?
常量就是在程序运行过程中,值不会发生改变,而且一眼可以辨识出值的量。
如: 20,‘a’ , 3.1415926 , "helloworld" 。
常量的分类: 整形,浮点型,字符型,字符串,符号常量。
十进制整形常量,就是一个10进制数;16进制整形常量就是0x开头的数。一个16进制位 等于 4个二进制位。字符型常量,表示一个字符,字符型常量可用 char 和 unsigned char 类型变量进行赋值。
// 8bit == 1byte
char alphabetA = 'a'; //char 类型取值 : -128 - 127
printf("===> %d\n", alphabetA);
unsigned char alphabetB= 'b'; // unsigned char 取值 : 0 - 255 ,无符号即无负号:范围还是256个数,但最大值更大。
printf("===> %d\n",alphabetB);
int sum = alphabetA + alphabetB;
printf("===> %d\n",sum);
‘char’ 占用一个byte 即 8位,内部存放的 东西就是ASCII编码,ASCII编码就是0-255的整数。
0-9 ==> 48-57 , A-Z==> 65-90, a-z ==> 97-122
转义字符 ‘\n’,'\r',‘\t’,'\ddd','\xhh' ,这一道下斜杠 就是代表要开启转义的含义。
符号常量
为阅读程序和修改的方便,常用一个由字母和数字组成的符号来代表某一个常量,这样的常量就叫符号常量。
#define 常量名 常量值 // C语言一般使用这种“宏定义” #define 来定义常量。
这是C语言的语法定义,程序中所有出现 "常量名" 的地方,就等价于出现的都是常量值。注意:这里 没有数据类型和等号!
#define CITY "SHANGHAI";
#define UNIVERSITY_NAME "麻省理工学院";
#define MAX_VALUE 999;
而C++中可以支持该语法,C++建议使用const 代替宏定义。const 放在语句定义之前,因此可以进行类型的判别。用const 定义的特殊常量,就是这里提到的符号常量。const 允许编译器对其进行类型检查,并可改善程序的可读性。
const 类型T variable = K常量;
由此可见const常量比宏定义更能看清楚类型,在C++中,完全可以用const来代替宏常量。