是被认为是转换为常数的变量

Is that considered a converted variable to constant?

本文关键字:常数 变量 转换 认为是      更新时间:2023-10-16
#include <iostream>
using namespace std;
int main () {
int x;
cin >> x;
const int sz = x;
int arr[sz];
for (int i = 0; i < sz; i++){
    cin >> arr[i];
}
for (int i = 0; i < sz; i++){
    cout << arr[i] << endl;
}
return 0;
}

arr [variable]不是标准的C ,如何填充用户的数组大小?这被认为是转换为常数还是否?

您要处理的内容称为可变长度阵列(VLA(。VLA是C标准的(现在是可选的(一部分,但不在C 标准的一部分。尽管如此,许多主要的编译器仍支持扩展程序,该扩展程序允许在C 中使用VLA。

关于他们的争议很大,有些人强行反对那些和其他人(您的真正(,他们认为他们有自己的位置。

arr [variable]不是标准的C ,如何填充用户的数组大小?

不要使用C样式数组!使用std::vector,因为在这种情况下要容易得多:

#include <iostream>
#include <vector>
int main()
{
    std::vector<int> arr;
    for (int x; std::cin >> x;)
    {
        arr.push_back(x);
    }
    for (int i = 0; i < arr.size(); ++i)
    {
        std::cout << arr[i] << "n";
    }
}

这是将转换为常数还是否?

否您没有将变量转换为常数,而是将正常变量的值存储在常数中。转换可能需要const_cast