问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言int 赋值问题

发布网友 发布时间:2022-05-02 13:00

我来回答

5个回答

热心网友 时间:2022-06-20 04:20

因为你要求它输出的是长整型(也就是64位的整数),
而你提供的参数是整数(只有32位)。

int a=40000;
只对4个字节进行了初始化,而输出时,将其当成了
一个8个字节的整数,换句话说,它还使用了另外4个你
没初始化的字节,所以当这4个已初始化的字节与4个
未初始化的字节合为一个8字节的长整数时,其值是不
确定的,也就得到了你看到的这个值(实际上,也可能
是其他值)。

楼上调试通过了,是因为在调试环境下,数据区会被清零,
这样相当于另外的未初始化的4个字节已被设置为0了。

为了验证上面的猜测,你可以看看下面这段代码的结果:

int c = 0;
int a = 40000;
int b = 0;
printf(\"%ld\",a);

在未调试时,看看它的输出结果是否40000;
然后改动c=1或b=1,再试试输出是什么。

祝你好运!

热心网友 时间:2022-06-20 04:21

我觉得禹希初的分析很有道理。
好奇之下我也试运行了一下程序。奇怪的是在VC++ 6.0下,对于下面的程序段
int c = 1;
int a = 40000;
int b = 1;
printf("%ld\n",a);
输出结果居然还是40000。
查看了一下,内存地址分配如下:
&b: 0x0012ff70
b: 1
&a: 0x0012ff74
a: 40000
&c: 0x0012ff78
c: 1
汗~微软还是比较厉害!VC++ 6.0中b、c就分布在a的相邻4字节范围内,居然不对a从整型转换成长整型的输出起作用!

热心网友 时间:2022-06-20 04:21

晕,会输出这个结果?
%ld是长整形数据,要看它的数据范围是多少了,感觉40000应该还在它的范围内。要是不在,则还可能输出这个结果,因为溢出了。

热心网友 时间:2022-06-20 04:22

结果还是40000,是你的编译软件出问题了。程序本身没问题。我在visualc++6.0 下调试通过了,结果还是40000

热心网友 时间:2022-06-20 04:23

结果仍然是40000,我用的是DEV C++
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? python怎么发送proto组成的包 C语言中 怎么给int (*buf)[10]赋值 c语言中int类型赋值给字符串怎么弄啊? C语言中这个赋值语句正确吗?为什么?y=int(x);这个语句错在哪里? C语言中如给一个int型的变量赋值int a=4;和int a;a=4;两种方式有区别吗? c语言,int赋值给char C语言中的赋值int a=1,b=2; 和 int a=1;b=2;两个都对吗? C语言中什么是逗号表达式?c=int(a+b)是赋值语句吗?谢谢 电脑打拼音的快捷键是什么 C语言中赋值语句有什么规则要求 电脑按哪个键变拼音 格力空调制热太阳图标旁边还有一个圆圈里面是太阳是怎么回事?_百度问一问 逐渐远离朋友圈的中年女人,命会变得越来越好吗? 新号新注册的告知限额了怎么办? 芦荟开花和风水有关吗 抖音小程序西瓜视频头条,咋是仅自己可见 刚注册的零线怎么就限额了刚注册的零钱怎么就限额了 我刚申请的,为什么不能用零钱支付? protobuf 怎么读取二进制文件 为什么我玩Pubg一直卡在进入界面 电脑打拼音是哪两个键 电脑那个按键是中文拼音 在C语言中,定义一个整型变量后,给它赋初值,然后要怎样赋值,才能... C语言中double 和int型的数据之间可相互赋值? C语言中的这样赋值语句是啥意思? C语言指针变量的赋值和做函数的参数 关于c语言中int i=10这个语句有关的立即数赋值的问题 c语言中int定义变量时应注意些什么?何时需要加初值,何时不需要? C语言中int后是一个带有小数的数字,那么它的值是多少? c语言 指针如何赋值 c语言中赋值 a=2;b=3;与a=2,b=3;哪个是正确的写法 马来西亚森达美是什么企业? 蒙汉情深何忍别天涯碧草话斜阳用生动语言描绘情境50字 大家帮忙想一下 纳兰容若公子都写过什么,写完的是哪个 仙剑奇侠传三演重楼的那个的所有资料,包括图 “WBW水之美”国际集团公司的详细介绍? 马来西亚中国公司在那很多么 悬赏30!!求薛涛诗一首!!!(含"清风素面满楼香"的那首) 学校封校了快递进不来,没烟了怎么办