关于c语言中未初始化的变量

int变量未初始化的默认初值,和变量的类型有关。

1 局部变量,在未初始化情况下,初值为随机值。C规范对该初值并没有做规定,具体实现由编译器决定。如VC/VS等编译器,会将初始值值为0xCCCCCCCC, 而GCC等编译器则是不可预知的随机值,我用notepad++则为15.
2 静态局部变量,即带static修饰的局部变量。
全局变量和静态全局变量,即定义在函数外,不属于任何一个函数的变量。
这几种默认初值为0.

以上部分转载

在c语言中,存在以下不足:

#include
int a;
int a=10;
int main()
{    
    printf("%d\n",a);
    return 0;
}

当定义一个全局变量而且未初始化,重新定义它再初始化是不会报错的,但必须同个类型。

c语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上

而这个在c++中则会报错,认为重定义。

你可能感兴趣的:(C)