请各位大虾们指教一个问题!
定义一个数组。
int n;
cin>>n;
char p1[n]; //这样的定义是不是错的呢?
char p2[]; //这样定义数组是不是错的呢?
是不是在vc++5.0中就是错的,而在vc++6.0中就是对的呢?
上面两个都是错的
int n;
cin>>n;
char p1[n]; //这样的定义肯定错,数组定义一定要是常量
char p2[]; //这样定义数组在没赋初值时是错了,如果赋初值就对了
例如:char p2[]={q,w,e,r,t,y,u,};没错
楼上哥们说得对
在VC++6.0中也是错的,这些基本语法不会改变的
int n;
cin>>n;
char p1[n]; //这样的定义肯定错,数组定义一定要是常量
p1=(char*)malloc(sizeof(n*char));或char*p1=new char[n];
char p2[]; //这样定义数组在没赋初值时是错了,如果赋初值就对了
例如:char p2[]={q,w,e,r,t,y,u,};没错
在C/C++中,数组申明时若指定长度,则长度必须为整数常量或整形常变量,如:
char sValue[20];
#define SIZE 20;
char sValue1[SIZE];
const int cnSize = 20;
char sValue2[cnSize];
都是正确的;而不指定长度时,可能的正确写法如下:
char sValue3[] = "This is a Test!"; //数组长度为16个字符,串长度为15个字符
char sValue4[] = {T,E,S,T,\0}; //数组长度为5个字符,串长度为4个字符