C语言 变量 改变输出结果 溢出

 我来答
佟佳金生力庚
2019-07-12 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.4万
采纳率:31%
帮助的人:806万
展开全部

c,d
定义为长整型(long)时,
在TC下每个变量占4个字节
正确输出时应用%ld格式(取4个字节)输出
若用%d(TC下,取2个字节)时
printf("c=x+a=%d,d=y+b=%d\n",c,d);
c在内在中的低16位(对应值十进制12)传给了第一个%d
c在内在中的高16位(值为0)传给了第二个%d
d的值未用上
所以出现了如你所说的情况.
VC6下正确,是因为VC6下
int

long
同样占4个字节,
%d

%ld
一样取4个字节输出.
接菲景乙
2020-05-27 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:1301万
展开全部
unsigned
char
a
=
0;
a--;
printf("%x,
%d,
%u\n",
a,
a,
a);
这三行程序就看出结果了
你提到的无符号其实无意义
关键是看你怎么去“理解”这个值
按hex理解,就是0xff
按无符号,是255
按有符号,是-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张廖诚蒲妆
2019-08-29 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1133万
展开全部
长整型变量
如果长整型还不够的话
只能用数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式