C语言单引号、双引号
我们知道双引号引起来的都是字符串常量,单引号引起来的都是字符常量。但初学者还是容易弄错这两点。比如:‘a’和“a”完全不一样,在内存里前者占1 个byte,后者占2个byte。关于字符串常量在指针与数组那章将有更多的讨论。
这两个列子还好理解,再看看这三个:
1,‘1‘,“1”。
第一个是整形常数,32 位系统下占4 个byte;
第二个是字符常量,占1 个byte;
第三个是字符串常量,占2 个byte。
三者表示的意义完全不一样,所占的内存大小也不一样,初学者往往弄错。字符在内存里是以ASCAII 码存储的,所以字符常量可以与整形常量或变量进行运算。如:‘A‘ + 1。
这两个列子还好理解,再看看这三个:
1,‘1‘,“1”。
第一个是整形常数,32 位系统下占4 个byte;
第二个是字符常量,占1 个byte;
第三个是字符串常量,占2 个byte。
三者表示的意义完全不一样,所占的内存大小也不一样,初学者往往弄错。字符在内存里是以ASCAII 码存储的,所以字符常量可以与整形常量或变量进行运算。如:‘A‘ + 1。