1.什么是常量?
在程序的执行过程当中,其值不能发生改变的数据
如:1,2,12.0,13.6, a, A, aaa。
2.分类
如果要写123,直接写123还是“123”?前者可用来做运算,后者不能用来做运算。不需要计算,只是想打印出来,两者是一样的效果。
注意:
‘’ 语法错误,单引号里面为空,字符常量不能为空
‘ ’ 正确,空格字符常量
‘¥’ 语法错误,¥为中文符号。字符常量不能是中文符号或中文文字(‘错’)
“” 正确,字符串常量可以是空,空字符串常量
“ ” 正确,空格字符串常量。里面可以放任何字符,也可不放任何字符。
实型常量补充:
.56 等同于 0.56
18. 等同于 18.0
小数点的一边全是0时,可以省略,不建议
1230000 整型常量
1.230000*10^6 不是常量,是一个计算过程
1.230000E6 实型常量,科学计数法是实实型常量
以上内容属于字面常量
3.const 修饰的常变量
const int a= 10;
const修饰的a,本质是变量,但不能被修改
const常量是被编译器放在只读存储器中的,告诉编译器,它的值是固定的,
const修饰的常变量在定义时一定要初始化。
4.#define 定义的标识符常量(宏常量)
这个100可以是任何字面常量或者表达式;定义好后,在往后的程序中不能被更改
作用:
为经常使用的常量或表达式定义一个有一定意义的名字,在程序中出现MAX的地方都会被替换(文本替换)成它所表示的内容
缺点:在被替换成文本之后,内存中有同一个替换文本的多份副本
常变量与宏变量的关系:const推出的目的就是为了取代宏常量,消除其缺点,同时继承其优点。
宏常量由于是在预处理部分将所有标识符替换成相应常量,所以在程序运行过程中,每使用一次宏常量,就需要在内存中创建一份副本(占用一块常量空间),而const常量由于是给出了对应的内存地址,所以在程序运行过程中只需要使用该地址下的常量,只有这一份副本。
5.枚举常量
生活中有些元素是可以一一列举出来的,如三原色
{ }中的内容是枚举类型的可能取值,这个取值是不可改变的,所以也叫枚举常量。这些枚举常量,是对应一个整数,默认是从0开始,后面的逐渐递增1。RED就是0,GREEN就是1
定义完枚举类型之后还需要在主函数内创建变量,这时候枚举常量就可以赋值给这个变量了
利用枚举,可以定义一个新的整数类型。上面语句是定义一个新的类型,而不是变量,也就是这个color是和int、float 这些是一样的,它也是一个数据类型