C语言中,如果定义一个变量,但不对其进行赋值,那么输出的这个变量的值由什么决定呢?
C语言中,如果定义一个变量,但不对其进行赋值,那么输出的这个变量的值由什么决定呢?
比如这个程序:
#include
#include
main()
{
int a;
printf("%d",a);
getch();
}
并没有对a赋值,为什么运行完输出的结果是1992732927呢?
另外,我把int a;换成char a;相当于定义一个字符型变量,同样不对其赋值并以整数型式%d输出,运行结果怎么又变成118了呢?
还有,我做了点改动,把上面的程序变成
#include
#include
main()
{
int b;
int a;
printf("%d",a);
getch();
}
相当于在定义a之前,先定义b,接着还是直接输出a,结果又变成了2293576!
我好象比较麻烦啊...呵呵
比如这个程序:
#include
#include
main()
{
int a;
printf("%d",a);
getch();
}
并没有对a赋值,为什么运行完输出的结果是1992732927呢?
另外,我把int a;换成char a;相当于定义一个字符型变量,同样不对其赋值并以整数型式%d输出,运行结果怎么又变成118了呢?
还有,我做了点改动,把上面的程序变成
#include
#include
main()
{
int b;
int a;
printf("%d",a);
getch();
}
相当于在定义a之前,先定义b,接着还是直接输出a,结果又变成了2293576!
我好象比较麻烦啊...呵呵
其他人气:680 ℃时间:2019-08-19 23:58:23
优质解答
操作系统回收内存单元后并不会清除其内容,当程序运行时需要为变量分配空间时就从这些回收的单元中分配,因此变量不赋初值,其值是不确定的.在不同的时刻运行,输出不同;在不同的机器上运行,输出也会不同.
我来回答
类似推荐
猜你喜欢
- 1把3、6、9、12、15、18、21、24、27填在合适的方格里使每横行、竖行、斜行的三个数相加的和都得45.
- 2数列{an}中,a1=1,an+1=2an+2^n(1)设bn=an/2^n-1.证明数列{bn}是等差数列(2)求数列{an}的前n项和sn
- 3用严组词 表情( )形势( )要求( )态度( )病情( )批评( )天气( )制度( )
- 4如图所示的电路中,电源电压保持不变,R1为定值电阻,在滑动变阻器的滑片P从最右端移到中间某个位置时,电压表V1、V2的示数分别为U1、U2,电流表A的示数为I,滑动变阻器连入电路中的电
- 5女生人数比男生人数多1/7,则男生人数是女生人数的几分之几?
- 6三角形abc的面积等于30平方厘米,周长等于12cm,三角形abc两条内角平分线相交于点o,则点o到bc边的距离为
- 7当I/you/we/they做主语时,行为动词变不变,当he/she/it做主语时,行为动词变不变
- 8We have been good friends a long time.这里的a long time之前不用加for吗?为什么?
- 9根据解释写词语:形容对眼前的是漫不经心
- 10擀字提手旁换三点水怎么念