我是C的新手程序员。
这是一个程序:
#include <stdio.h>
void main()
{
int a,b, c ;
printf("%d %d %d",a,b,c);
}
输出:
7811664 31 2130567168 (1st time)
4665936 31 2130567168 (2nd time)
我没有得到这个输出?
答案 0 :(得分:3)
这些是垃圾值,因为您尚未初始化变量。正如以下链接中所指出的未分配的变量具有所谓的不确定状态,可以以任何方式实现,即其未定义的行为。
旁注: -
未分配垃圾值,它们在声明时分配给变量,即值已经存在。初始化变量时,将覆盖垃圾值
有关参考,您可以查看以下主题: -
另外值得一提的是,主要应该有int
返回类型而不是void
您可以查看this: -
在C和C ++中,main函数的函数原型看起来像 以下之一:
int main(void);
int main();
int main(int argc, char **argv);
int main(int argc, char *argv[]);
答案 1 :(得分:2)
你声明了变量,这意味着编译器已经为它们分配了内存,但是你还没有初始化它们,这意味着它们的内存包含发生的任何数据在节目开始时出席。
由于程序可能并不总是被加载到相同的内存区域,并且由于内存的内容可以在运行之间改变,因此未初始化的值似乎是随机的。
这是您在使用变量之前始终初始化变量的原因的完美演示。
答案 2 :(得分:1)
为什么不给他们价值观?你有未定义的行为