C typedef'd数组 - 初始值是多少?

时间:2012-05-26 22:29:20

标签: c arrays initialization

我知道数组的初始值在定义为静态时是0,否则是未定义的,但我不完全确定当数组是typedef时这是否相同。我想是这样,但我想确认一下。

为了说清楚,我的意思是这样的:

typedef float vector3[3];

int main (int argc, char* argv) {
    vector3 vec;
    static vector3 vec2;
}

vec变量将是未定义的,不是吗?那vec2怎么样?它应该全部为0,对吧?

2 个答案:

答案 0 :(得分:2)

是的,vec中的值未定义; vec2中的值将全为零。

在定义或声明变量时,使用typedef对类型的行为没有任何影响。

答案 1 :(得分:1)

typedef对代码的语义完全没有影响。这包括初始值。