我们在用C编程时有时需要定义不变的变量,即常量,有两种方法。
例如:
定义常量PI的两种方式:
1. #define Pi 3.1415926f
2. const float pi 3.1415926f
拓展材料:常量有整型常量、浮点型常量、字符型常量及字符串常量。 ‘
常量定义是指定义符号常量,用一个标识符来代表一个常量,通过宏定义预处理指令来实现。
格式:#define标识符常量
由用户命名的标识符是符号常量名。作为符号常量名,一般大写。一旦定义,在程序中凡是出现常量的地方均可用符号常量名来代替。
对使用了符号常量的程序在编译前会以实际常量替代符号常量。
全局变量和局部变量的区别:
1.数值常量:例如 a = b + 5,这里的5就是常量。在常量后加上恰当的后缀可以表示特定类型的常量,例如1.0f是float常量。不带后缀的浮点数默认类型为double。2.符号常量:用#define替换为数值常量,只存在于编译期。例如
#define A 5
定义了一个符号常量A,编译时预处理器会把这之后的A替换为5。
3.const数据类型:
例如定义一个int常量:const int a = 5,这里 a 为 const int 类型。类型有const修饰时,编译器会对修改此数据的行为视为编译错误。因此把const数据作为常量使用。
另外还有字符/字符串字面量:类似'a'或"aaa"的字符/字符串为字面量。字面量在C语言中不是常量(在C++中是常量),因为C语言标准中定义了修改其中内容的 *** 作为“未定义行为”,修改 *** 作可能引起不确定的后果。如果约定不用指针等方式修改其中内容,可以把字面量当做常量使用。用前置的const修饰指针,可以限制指针修改其中内容,例如const char* str = "aa",指针str指向的内容无法通过str修改,可以把str指向的内容视作常量字符串。用#define替换得到的字面量是匿名的,也可以当做常量使用。
====
[原创回答团]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)