一个有关sizeof的问题

see22 2004-11-06 03:41:35
用gcc编译:

1)
char c = 'a';
printf("%d\n", sizeof(c)); //结果: 1

2)
printf("%d\n", sizeof('a')); //结果: 4 ??

不明白,请高手指点
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sukaru 2004-11-08
  • 打赏
  • 举报
回复
实际上字符是转换为整数在处理的,所以你做sizeof('a')肯定是4啊
rainman1981 2004-11-06
  • 打赏
  • 举报
回复
同意2楼的
char类型显式声明是1个字节的
如果没有显式生命则可能是按照整型存放
zhouyong0371 2004-11-06
  • 打赏
  • 举报
回复
VC里边也是这样,
铖邑 2004-11-06
  • 打赏
  • 举报
回复
'a'编译时是当作int处理的
pacman2000 2004-11-06
  • 打赏
  • 举报
回复
这是C语言标准里对常量的规定。字符常量是作为int的。这个在c++里改回了char型。你用g++编译就知道了。
gettext 2004-11-06
  • 打赏
  • 举报
回复
sizeof('a')没有什么意义,只能说明字符常量是按整型存的。
groock 2004-11-06
  • 打赏
  • 举报
回复
的确‘character’是当作整数处理的
lysliberty 2004-11-06
  • 打赏
  • 举报
回复
呵呵,楼上的都说拉!
lswx 2004-11-06
  • 打赏
  • 举报
回复
错了,
2> sizeof(int)=4;
不好意思 手误
lswx 2004-11-06
  • 打赏
  • 举报
回复
1)-->
a是做字符处理,所以sizeof(a)=1;

2)-->
'a'是以整型处理的,sizeof('a')等于sizeof(int)
sizeof(int)=1;
xoyuer 2004-11-06
  • 打赏
  • 举报
回复
sizeof 将'a'处理为整型
将c处理为字符型!

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧