社区
C语言
帖子详情
问个char和int关系的问题
benbshmily
2009-11-03 11:08:28
char ch = 0;
int i = -1;
ch = i;
printf("%d, ",ch);
结果是-1
i是4字节,ch是1字节。我想知道i是怎么把这个-1赋值给ch的。内存中的i保存的是-1的补码呀。赋值结果ch应该是255才对啊。
不解。
同时,sizeof(++i);后为啥i的值不会自加1;
有了答案马上结贴。谢谢各位。
...全文
99
11
打赏
收藏
问个char和int关系的问题
char ch = 0; int i = -1; ch = i; printf("%d, ",ch); 结果是-1 i是4字节,ch是1字节。我想知道i是怎么把这个-1赋值给ch的。内存中的i保存的是-1的补码呀。赋值结果ch应该是255才对啊。 不解。 同时,sizeof(++i);后为啥i的值不会自加1; 有了答案马上结贴。谢谢各位。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
selooloo
2009-11-03
打赏
举报
回复
ch是 11111111
因为char 属于有符号数,首位符号位是负数,减1,取反就是它的值,就是-1;
如果这样定义 unsigned char ch;
printf("%d, ",ch); 就是255
benbshmily
2009-11-03
打赏
举报
回复
哦,明白了。ch其实是保存的i的最低字节。11111111.我是%d有符号型打印,所以是-1.昏。谢谢各位。
满意结贴
cnStreamlet
2009-11-03
打赏
举报
回复
第一个问题,ch 就是 255,无符号的 255 就是有符号的 -1 么
LZ 既然知道内存中保存的是 -1 的补码,为何反而怀疑 -1 的补码不是 -1 呢?
pengzhixi
2009-11-03
打赏
举报
回复
sizeof是不关心表达式的结果,它只关心类型
morilasi
2009-11-03
打赏
举报
回复
sizeof(++i)
在编译期间计算。比如cout<<sizeof(i)
你会发现编译出的汇编代码跟cout<<4是一样的
Eveilei
2009-11-03
打赏
举报
回复
第一个问题,不解。
pengzhixi
2009-11-03
打赏
举报
回复
sizeof 是不会帮你计算的。
jzd8000
2009-11-03
打赏
举报
回复
sizeof(++i)
算的还是i这个整形变量的大小,当然不变。
数据保存在内存里,你可以认为它是不分类型,
你printf什么类型的,他就按你指定的类型把数据显示出来。
cattycat
2009-11-03
打赏
举报
回复
%d输出时,按有符号,最高位1表示负号。
lihan6415151528
2009-11-03
打赏
举报
回复
只是把首地址给了ch了
s_rlzheng
2009-11-03
打赏
举报
回复
你用printf("%c ", ch);就可以输出255的字符了。
因为你用了%d,所以打印出来的当然是整型啦,也就是-1。
sizeof是不计算里面的,当然不会自加1啦。
jarch-jsf-2.23.5-javadoc.jar
jarch-jsf-2.23.5-javadoc.jar
毕设&课设:边缘智能分析系统.zip
经导师指导并认可通过的大作业设计项目源码,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。
ivs-jvm-1.5.27-javadoc.jar
ivs-jvm-1.5.27-javadoc.jar
哈尔滨工业大学威海网络空间安全专业课程设计项目-Diffie-Hellman密钥交换协议实现与中间人攻击模拟及PKI和PSK改进方案-通过C编程结合OpenSSL库实现基础.zip
tomcat哈尔滨工业大学威海网络空间安全专业课程设计项目_Diffie-Hellman密钥交换协议实现与中间人攻击模拟及PKI和PSK改进方案_通过C编程结合OpenSSL库实现基础.zip
springboot252基于Springboot和vue的餐饮管理系统的设计与实现+MySQL前后分离毕设项目.zip
本项目是基于Springboot和Vue的餐饮管理系统设计与实现,结合MySQL数据库,实现前后端分离架构的毕设项目。该项目旨在开发一款功能全面、操作便捷的餐饮管理系统,以满足餐饮企业对日常运营管理的需求。 项目主要功能包括:用户管理、菜品管理、订单管理、库存管理和财务报表等。在框架上,采用Springboot作为后端框架,提供RESTful API接口,Vue.js作为前端框架,负责页面交互和数据显示。MySQL数据库用于存储和管理餐饮数据。 通过该项目,可以实现对餐饮企业各项业务的信息化管理,提高运营效率。同时,前后端分离的设计模式,使得系统更具灵活性和可扩展性,便于后期维护和功能迭代。此外,该项目源码公开,可供学习和参考。毕设项目源码常年开发定制更新,以适应不断变化的市场需求和技术发展,希望对需要的同学有帮助。
C语言
70,025
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章