读书人

小弟急求为什么sizeof(#039;\n#039;)的结果是

发布时间: 2012-04-16 16:20:04 作者: rapoo

小弟急求,为什么sizeof('\n')的结果是4啊?
如题,sizeof('\n')的结果是4,却不是1,这是为什么?一个字符不是占用一个字节吗?有哪位大哥知道答案,小弟急求,万分感激!

[解决办法]
这和程序设计语言有关,c++的话是1,c的话是4
[解决办法]
我想,应该是编译器把'\n'当作一个整数常量来处理的. 我用gcc的测试结果是这样的:
char c;
printf("%d,%d,%d\n",sizeof((char)'\n'), sizeof((int)c),sizeof(0));
结果为:
1,4,4
将sizeof('\n') 强制转换为sizeof((char)'\n')后就成了1

读书人网 >C语言

热点推荐