刚学C,请教一下

Philip0073 2004-07-10 10:45:45
main()
{
char x=0xFFFF;
printf("%d\n",x--);}
为什么会得出-1

...全文
135 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjp6688 2004-07-11
  • 打赏
  • 举报
回复
up
Vivianren 2004-07-11
  • 打赏
  • 举报
回复
楼上正解!
zhangfjj 2004-07-10
  • 打赏
  • 举报
回复
char 型数据只有8位
你给它赋值
char x=0xffff,
x 在内存中的存储是1111 1111
printf("%d",x--);
虽然x的值要减1,但你这里是后置的--,所以还是输出的是自减1之前的值。
你又以十进制有符号格式 输出
在turbo c 中采用的是符号扩展,即1111 1111 1111 1111
这补码对应的值就是-1

zhangfjj 2004-07-10
  • 打赏
  • 举报
回复
溢出了

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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