C 中全局变量总是初始化为零吗? [复制]

2023-12-23

#include <stdio.h>
int a[100];
int main(){
    printf("%d",a[5]);
    return 0;
}

上面的代码总是打印“0”还是编译器特定的?我正在使用 gcc 编译器,输出为“0”。


是的,所有成员a保证初始化为0。

来自 C89 标准第 3.5.7 节

如果具有静态存储持续时间的对象未初始化 显式地,它是隐式初始化的,就好像每个成员都有 算术类型被分配为 0 并且每个具有指针类型的成员 被分配了一个空指针常量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 中全局变量总是初始化为零吗? [复制] 的相关文章

随机推荐