C 和 C++ 中的 Sizeof
可能的重复:
C/C++ 中字符 ('a') 的大小
#include <stdio.h>
int main()
{
printf("%d" , sizeof('a'));
return 0;
}
#include <iostream>
using namespace std;
int main(){
cout << sizeof('a');
return 0;
}
对于 C,它给出 4 作为答案,而对于 C++ 则给出 1 ? 我的问题是为什么这些语言对字符常量的解释不同?
Possible Duplicate:
Size of character ('a') in C/C++
#include <stdio.h>
int main()
{
printf("%d" , sizeof('a'));
return 0;
}
#include <iostream>
using namespace std;
int main(){
cout << sizeof('a');
return 0;
}
For C, it gives 4 as answer whereas for C++ it gives 1 ?
My question is why the languages interpret the character constant differently ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
实际上,C 语言中的
sizeof('a') == sizeof(int)
(所以你应该得到4
)。我对 C++ 不是完全确定,但我相信sizeof('a') == sizeof(char)
。C 部分在 C FAQ 中进行了解释。
Actually
sizeof('a') == sizeof(int)
in C (so you should get4
). I'm not entirely sure about C++ but I believesizeof('a') == sizeof(char)
.The C part is explained in the C FAQ.
您已成功找到 C 和 C++ 标准存在显着差异的少数几个地方之一。它们是不同的答案,因为规范规定它们必须如此。
You have managed to find one of the few places where the C and C++ standards differ significantly. They are different answers because the specs say they must be.