c++和c 语言常量表达式的区别

img


如何可以快速解决vs表达式结果不是常量这个问题按,编译器的修改

186行 语法规定数组定义的时候不可以用变量n去分配数组长度,必须要用常量数值 , 如果想动态创建数组的话只能是用 分配内存的方式创建 c malloc c++ new

186行,数组不可以设置n为个数

可以使用下面代码,动态new


#include<iostream>
using namespace std;
int main()
{
   int n;   //输入数组长度
   cin>>n;
   int *p;  //声明一个指针
   p=new int[n]; /*创建了一个长度为n的动态数组,并且返回这个数组的首地址给p,p就指向了这个动态数组,可以通过指针p
                 来操作数组,因为创建的动态数组并没有名字,只返回了首地址给p,所以可以把p看作是这个动态数组的名字 */
   for(int i=0;i<n;i++)
       cin>>p[i];
   for(int i=0;i<n;i++)
       cout<<p[i]<<" ";
   delete []p;  //释放这个一维的动态数组,而不是释放指针p。用完以后要记得释放掉
   cout<<p;    //输出指针p的地址
   return 0;
}