一道VC++选择题,请详细解释每个选项
下列数组的定义和赋值,正确的是 。
A. char s[3]={“abc”};
B. char s[10];s=“abc”;
C. int i=10;char s[i]=“abc”;
D. const int i=10;char s[i];strcpy(s,“abc”);
请详细解释每个选项
下列数组的定义和赋值,正确的是 。
A. char s[3]={“abc”};
B. char s[10];s=“abc”;
C. int i=10;char s[i]=“abc”;
D. const int i=10;char s[i];strcpy(s,“abc”);
请详细解释每个选项
答案:A.char s[3]={“abc”};//越界,定义为s[4]B. char s[10];s=“abc”; //不是这样,是strcpy(s,"abc");
C. int i=10;char s[i]=“abc”;//一般编译器不支持变量为下标
D. const int i=10;char s[i];strcpy(s,“abc”);//i为常量,没越界,正确的。
答案是D,楼上正解第一个正确(A)。