关于C ++中Array的一些问题

时间:2013-12-06 02:13:47

标签: c++ arrays

当我阅读 The C ++编程语言(特别版第3版)时,有一些关于数组的问题。

第5.3.1节“导航数组”

void fi(char v[])
{
    for(int i = 0 ; v[i] != 0; i++) use v[i];
}

Que 1:语句 v [i]!= 0 适合char类型,对吧?

void f(int i)
{
    int v[i];
    cout << v[0] << endl;
}

int main()
{
    f(10);
    return 0;
}

据我所知, i 必须是 v [i] 中的const值,但上面的代码片段在g ++ 4.4.3上运行正确且没有错误。

Que 2:如何解释此案?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Q1: v[i] == 0是一项特殊测试,用于检查C样式字符串(字符数组)末尾的null terminator character\0。在C ++中,这是char数组的工作方式:

char word[] = "dog";
//Index: d-0, o-1, g-2, \0-3 \0 is a special char that signal string end

0是空终止字符i != 0的整数ascii代码,用于检查数据是否有效。

Q2:你很幸运,G++支持variable size arrays