char ch = 'a';
printf("%d\n", sizeof ch); // 结果为1
再看这行代码:
char ch1 = 'abcd';
printf("%d\n", sizeof ch1);
此时ch1存的还是a,只占一个字节,初始化时会有警告。
但是不再定义变量,直接测试
printf("%d\n", sizeof 'a');
printf("%d\n", sizeof ('abcd'));
结果竟然是4! 原来编译器是将单个字符当做整型来存放的,要占4个字节!所以也可以写作'abcd'。
但若常字符写的长于4个,则语句错:
printf("%d\n", sizeof ('abcde')); // 不可