C语言核心技术-第三章

第三章 字面量

3.1整数常量

​ 十进制常量起始数字不可为0

​ 以0开始的数字会被解释成八进制

​ 十六进制以0x或0X作前缀

3.2浮点常量

​ 默认类型为double,也可用后缀f或F来说明该常量是float型

3.3字符串常量

​ 字符串常量可以初始一个char数组,也可以初始化一个指向char的指针,例:

char *p = "hello, zcy!";		//p指向字符'h'

​ 虽然C语言没有严格禁止修改指针指向的字符串字面量,但也不能试图这么做,以下做法是不好的:

char *p = "hello, zcy!";
*p = "hi, acm!";			//这样做很不好

​ 这样做导致语句不具备可移植性,在某些系统下会产生运行错误。原因有两个:

​ (1)一些编译器将字符串字面量视为常量,可能将其存在只读存储器中,对其进行写操作将会产生错误

​ (2)程序中有两个或更多完全相同的字符串字面量,编译器可能会将它们存储在相同的位置,因此修改一个字符串会对其他字符串造成影响。

​ 而使用字符串字面量初始的数组变量不会产生这种影响

转载请注明出处!!!

如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢

猜你喜欢

转载自blog.csdn.net/Ivan_zcy/article/details/84895312