C语言中,如果定义一个变量,但不对其进行赋值,那么输出的这个变量的值由什么决定呢?
比如这个程序:#include<conio.h>#include<stdio.h>main(){inta;printf("%d",a);getch();}并没有对a赋值,...
比如这个程序:
#include<conio.h>
#include<stdio.h>
main()
{
int a;
printf("%d",a);
getch();
}
并没有对a赋值,为什么运行完输出的结果是1992732927呢?
另外,我把int a;换成char a;相当于定义一个字符型变量,同样不对其赋值并以整数型式%d输出,运行结果怎么又变成118了呢?
还有,我做了点改动,把上面的程序变成
#include<conio.h>
#include<stdio.h>
main()
{
int b;
int a;
printf("%d",a);
getch();
}
相当于在定义a之前,先定义b,接着还是直接输出a,结果又变成了2293576!
真是费解~
我好象比较麻烦啊...呵呵
谢谢各位大虾的耐心解答!! 展开
#include<conio.h>
#include<stdio.h>
main()
{
int a;
printf("%d",a);
getch();
}
并没有对a赋值,为什么运行完输出的结果是1992732927呢?
另外,我把int a;换成char a;相当于定义一个字符型变量,同样不对其赋值并以整数型式%d输出,运行结果怎么又变成118了呢?
还有,我做了点改动,把上面的程序变成
#include<conio.h>
#include<stdio.h>
main()
{
int b;
int a;
printf("%d",a);
getch();
}
相当于在定义a之前,先定义b,接着还是直接输出a,结果又变成了2293576!
真是费解~
我好象比较麻烦啊...呵呵
谢谢各位大虾的耐心解答!! 展开
7个回答
展开全部
其实这涉及到计算机的存储机制 首先你必须明白计算机存储介质上并不是清白的 相反是存放了很多以前运算的无用数据的 当你写了int a的时候 系统就把这片无用数据的空间给了a存放数值 如果你赋初值的话 他就可以把原始的无用数据的值覆盖掉 但是你没有 所以就是随机的无用数据值 。但是听说一些高级 最新版的编译器可以自动把存储空间清零的。
已赞过
已踩过<
你对这个回答的评价是?
展开全部
因为你没有对其进行初始化,所以他的值是一个随机量。没有什么意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询