C ++中数组的参数大小

时间:2015-08-16 00:58:30

标签: c++ arrays

请不要粗略地评价我,我只是用C ++编写的新手 然而我的问题是:我们为什么不能声明一个参数大小的数组,我们自己进入参数?例如:

int mas[i*];
cin>>i*;

2 个答案:

答案 0 :(得分:0)

在C ++中,数组是一个类型为数组类型的对象,所有变量和所有表达式的类型都是(静态地)程序的一部分,必须在编译时知道。换句话说,mas的类型必须在编译时知道。

创建在编译时类型未知的对象的唯一方法是使用array-new-expression,new T[n],但即使在这种情况下也没有该类型:您可以从该表达式中恢复的唯一值是类型T *的值,其中包含数组对象的第一个元素子对象的地址。

答案 1 :(得分:0)

因为在创建数组时,程序需要为其元素分配足够的内存。在您的示例中,在声明数组时,数组中的元素数仍然是未知的。