免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: wacs5
打印 上一主题 下一主题

[C] 关于sizeof问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-07-26 12:32 |只看该作者
回复 10# zhangsuozhu

turbo pascal 这个IDE以前也用过,后来使用 有语法高亮的Free pascal把TP替换了。

论坛徽章:
0
12 [报告]
发表于 2010-07-26 12:35 |只看该作者
现在早忘了。十多年了。呵呵

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
13 [报告]
发表于 2010-07-26 13:25 |只看该作者
虽然TC这个东西不支持任何ISO C标准,但是我还是套标准说一下吧。
有这么个规定,任何长度小于整型的数据在 ...
davelv 发表于 2010-07-26 09:57



学到了,谢谢。

请问什么时候char不会发生类型转换?

论坛徽章:
0
14 [报告]
发表于 2010-07-26 14:51 |只看该作者
用C++编译器你就发现差别了

论坛徽章:
0
15 [报告]
发表于 2010-07-26 14:55 |只看该作者
学到了,谢谢。

请问什么时候char不会发生类型转换?
tempname2 发表于 2010-07-26 13:25

字面值的char类型参与表达式运算就会被扩展,除非你使用强制转换。like this:
sizeof((char)'a') 这里的值就会是1了。
而至于char变量,除了sizeof()运算不扩展外,其他运算同上

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
16 [报告]
发表于 2010-07-26 16:49 |只看该作者
char a = 11

这不是把int赋给char么,这时不应该要强制性转换吗?

论坛徽章:
0
17 [报告]
发表于 2010-07-26 17:30 |只看该作者
char a = 11

这不是把int赋给char么,这时不应该要强制性转换吗?
tempname2 发表于 2010-07-26 16:49

由于你的a是作为左值存在的,所以右值表达式会隐式转化为左值表达式相同的类型,在这里11 隐式转化位char类型,如果你写1111,那么就会提示隐式转化溢出了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP