关于在C语言中创建对象时会发生什么,我没有在线发现:像初始化对象的值或获取垃圾值一样。
#include <stdio.h>
struct temp
{
int a;
} s;
int main()
{
printf("%d", s.a);
}
输出是:0
。
0是垃圾值吗?还是未定义的行为?
答案 0 :(得分:5)
由于全局和静态结构具有静态存储持续时间,因此答案是肯定的-它们被初始化为零(结构中的指针将设置为NULL指针值,该值通常为零位,但严格来说不需要是)。
您使用了全局结构变量。因此初始化为默认值0。
答案 1 :(得分:1)
这取决于声明变量的位置。结构变量var user = [ //marks the start of the array
{ //marks the start of the object
username: username //property:value pair
},
...
]//marks the end of the array
被声明为全局变量。因此,默认情况下它初始化为零。
此link
中的更多内容