C 和 C++ 中的 Sizeof

发布于 2024-11-17 05:09:28 字数 486 浏览 2 评论 0原文

可能的重复:
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

对风讲故事 2024-11-24 05:09:28

实际上,C 语言中的 sizeof('a') == sizeof(int) (所以你应该得到 4)。我对 C++ 不是完全确定,但我相信 sizeof('a') == sizeof(char)

C 部分在 C FAQ 中进行了解释。

也许令人惊讶的是,性格
C 中的常量是 int 类型,因此
sizeof('a')sizeof(int) (尽管
这是 C++ 的另一个领域
不同

Actually sizeof('a') == sizeof(int) in C (so you should get 4). I'm not entirely sure about C++ but I believe sizeof('a') == sizeof(char).

The C part is explained in the C FAQ.

Perhaps surprisingly, character
constants in C are of type int, so
sizeof('a') is sizeof(int) (though
this is another area where C++
differs
)

旧时浪漫 2024-11-24 05:09:28

您已成功找到 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文