C ++数组声明和初始化

时间:2017-10-24 12:46:57

标签: c++ vector

在观看演讲者使用的教程时

int deca['f' + '9' + 2 ] = {0};

我从来没有在任何其他C++教程中看到这个,但他们没有解释它的意思,当我试图在我的计算机上实现它时出现错误。

作为参考,他们在Linux环境中。

1 个答案:

答案 0 :(得分:2)

它只是声明一个N个元素的整数数组,并将其初始化为零。 N评估的内容由'f' + '9' + 2表达式确定。如果您使用的是ASCII代码页,则评估为161,如果您使用的是不同的代码页,则为其他内容。每个字符文字都有相应的整数值,具体取决于所使用的编码。在ASCII代码页中,字符'f'由多个102表示,字符'9'的值为57。表达式变为102 + 57 + 2,等于161。在其他代码页中,这些字符可能具有其他值。相当于:

int deca[161] = { 0 };  // If ASCII code page is used