-1

我是 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)

我没有得到这个输出?

4

3 回答 3

3

这些是垃圾值,因为您尚未初始化变量。正如以下链接之一所指出的,未分配的变量具有所谓的不确定状态,可以以任何方式实现,它的未定义行为

附带说明:-

垃圾值没有分配,它们在声明时分配给变量,即值已经存在。当您初始化变量时,垃圾值被覆盖

作为参考,您可能想检查这些线程:-

另外值得一提的是 main 应该有一个int返回类型而不是void

你可以检查这个: -

在 C 和 C++ 中,主函数的函数原型如下所示:

int main(void);
int main();

int main(int argc, char **argv);
int main(int argc, char *argv[]);
于 2013-10-19T12:34:16.667 回答
2

你已经声明了变量,这意味着编译器已经为它们分配了内存,但是你还没有初始化它们,这意味着它们的内存包含了程序开始时碰巧出现的任何数据。

由于程序可能并不总是被加载到内存的同一区域,并且由于内存内容可以在运行之间发生变化,因此未初始化的值似乎是随机的。

这完美地展示了您应该始终在使用变量之前对其进行初始化的原因。

于 2013-10-19T12:37:04.390 回答
1

为什么不给他们价值?你有未定义的行为

于 2013-10-19T12:35:33.887 回答