一道C语言选择题求解
这个程序是什么意思我看不懂,能不能帮我讲解一下?为什么我上机运行后结果为-1,4294967295...
这个程序是什么意思我看不懂,能不能帮我讲解一下?为什么我上机运行后结果为-1,4294967295
展开
展开全部
因为电脑上面 int 是 4个字节
题目上面 int 是两个字节...
数据类型占内存的位数实际上与操作系统的位数和编译器(不同编译器支持的位数可能有所不同)都有关
电脑上面的int 是多少字节,可以用 sizeof() 方法检测
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%u是将对应的整数按无符号十进制输出,在你的计算机上那个int被定义成32位了,所以输出这个。正常情况下int是16位的,-1用16进制是0x8001,变成整数是32769。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题是考查有符号整数与无符号整数的区别。
它的编译程序是16位的编译程序,所以是选择答案D,而你的是32位的编译程序,所以输出是
-1,4294967295
因为:
2^16 - 1 = 65535
2^32 - 1 = 4294967295
它的编译程序是16位的编译程序,所以是选择答案D,而你的是32位的编译程序,所以输出是
-1,4294967295
因为:
2^16 - 1 = 65535
2^32 - 1 = 4294967295
追问
没学过这种程序...这里只有一个k,为什么printf里面有%d和%u两个格式字符?后面也有两个k,我有点看不懂.....
追答
这就是说,同样的变量值,如果用不同的格式解读,会有不同的结果。
还可以再举一例,
int k=65;
printf("%c,%d",k,k);
运行后就会输出:
A,65
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询