请不要粗略地评价我,我只是用C ++编写的新手 然而我的问题是:我们为什么不能声明一个参数大小的数组,我们自己进入参数?例如:
int mas[i*];
cin>>i*;
答案 0 :(得分:0)
在C ++中,数组是一个类型为数组类型的对象,所有变量和所有表达式的类型都是(静态地)程序的一部分,必须在编译时知道。换句话说,mas
的类型必须在编译时知道。
创建在编译时类型未知的对象的唯一方法是使用array-new-expression,new T[n]
,但即使在这种情况下也没有值该类型:您可以从该表达式中恢复的唯一值是类型T *
的值,其中包含数组对象的第一个元素子对象的地址。
答案 1 :(得分:0)
因为在创建数组时,程序需要为其元素分配足够的内存。在您的示例中,在声明数组时,数组中的元素数仍然是未知的。