鱼C论坛

 找回密码
 立即注册
查看: 4375|回复: 11

新手求助

[复制链接]
发表于 2013-5-2 16:55:47 | 显示全部楼层 |阅读模式
1鱼币
#include"stdio.h"
void main()
{
      char x = 0xFFFF;
      printf("%d\n",x--);
}
输出结果为-1,为什么?
#include"stdio.h"
void main()
{
      printf("%d\n",NULL);
}
输出结果为什么为0啊?

最佳答案

查看完整内容

第二个,你可以转到NULL的定义查看 在头文件中定义过的:#define NULL 0;
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-2 16:55:48 | 显示全部楼层
第二个,你可以转到NULL的定义查看  在头文件中定义过的:#define NULL    0;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-2 17:36:39 | 显示全部楼层
你这么的研究这些有用吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-2 17:45:04 | 显示全部楼层
程序写错了,仔细看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-2 17:49:30 | 显示全部楼层
第一个:0XFFFF,为1111111111111111,char 类型占1个字节8位,截取低位8位,是﹣1的补码(如果你改为FFFE会输出-2的~~我本来以为是char类型的放不下导致溢出所以才输出的-1);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-2 21:28:42 | 显示全部楼层

0xFFFF怎么为那个,0X是16进制,0xFFFF=65535.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-2 21:34:46 | 显示全部楼层
永驻零一 发表于 2013-5-2 17:36
你这么的研究这些有用吗

我们的课后练习题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-2 21:36:17 | 显示全部楼层
颓废的青春 发表于 2013-5-2 17:45
程序写错了,仔细看

你是说第二个那个void不要嘛?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-2 21:53:19 | 显示全部楼层
失忆的猫゜ 发表于 2013-5-2 21:36
你是说第二个那个void不要嘛?

我说的是 第一个
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-2 22:18:48 | 显示全部楼层
颓废的青春 发表于 2013-5-2 21:53
我说的是 第一个

那应该没有错吧,那是我们练习上的作业,哪里错了啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-2 22:25:31 | 显示全部楼层
失忆的猫゜ 发表于 2013-5-2 22:18
那应该没有错吧,那是我们练习上的作业,哪里错了啊?

首先要理解:char 是8位的,也就是说无符号最大值 是 0xff。
好了,现在说下为什么第一个是 -1:
x = 0xffff,程序会丢弃前面一个字节然后 x=0xff,即有符号数的 -1
然后输出 x。完了之后再 自增
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-5-2 22:38:22 | 显示全部楼层
失忆的猫゜ 发表于 2013-5-2 21:28
0xFFFF怎么为那个,0X是16进制,0xFFFF=65535.

嗯,是的亲,但是我说的是用二进制表示的话,一个F不是相当于四个1吗?FFFF不是就是相当于1111111111111111,char类型不是占一个字节吗?一个字节是八位,这个显然大于八位的,我本来以为你这个定义是有错的,会溢出的,可是改成了FFFE的话竟然会变成-2(你可以试一下),所以百度了下说是截取了低八位,然后刚好是-1的补码,而FFFE刚好是-2的补码,,,这样就对了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-29 21:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表