首页 > 解决方案 > 没有常量表达式的 C++ 堆栈数组

问题描述

来自C++ 之旅

数组的大小必须是常量表达式

我不明白为什么这个编译和运行没有错误

int main() 
{
    int input;
    cin >> input;
    char v[input];
    cout << sizeof(v) << endl;
}

虽然这不是

int value(int value)
{
    for(int i = 0; i < value; i++) {
        value++;       
    }
    return value;
}

int main() 
{
    int input;
    cin >> input;
    char v[value(input)];
    cout << sizeof(v) << endl;
}

有人可以向我解释为什么会这样吗?

标签: c++c++11

解决方案


推荐阅读