- 字符常量如‘a’,用sizeof计算出来是1还是4?
结果是:#include <stdio.h> int main(void) { printf("sizeof = %d\n", sizeof('a')); return 0; }
换种写法再看看:
结果变成了:#include <stdio.h> int main(void) { char a = 'a'; printf("sizeof = %d\n", sizeof(a)); return 0; }
上面2个程序区别就在第一个是直接对字符常量求sizeof,第二个是对字符变量(即char型变量计算sizeof);字符常量在内存中是以ascii码的形式保存的,实际上就是一个整形数,所以字符常量在内存中是int型的长度即4个字节;而char型变量在内存中只占1个字节,所以sizeof计算出来是1;这里,char、short、int其实都叫整形,只不过是范围不一样,char、short其实都只是int的特殊情况而已。
字符常量/字符变量 计算sizeof
最新推荐文章于 2023-04-06 20:13:22 发布