当前位置:编程学习 > VC++ >>

一道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”);正常i为常量,用strcpy赋值,此项正确
其他:应该选B。
A,不能直接把字符串赋给数组,应该这样{”a“,”b“,"c"}。
C,定义数组时,数组的维数不能使用变量;
D,错误同上。 B也错的char 不能直接赋值 A,不能直接把字符串赋给数组,应该这样{”a“,”b“,"c"}。
B,数组名表示地址,不能这样赋值
C 定义数组时,数组的维数不能使用变量
答案选D A选项是因为数组的长度,abc后面还会自动加上‘\0’,所以少了一个字符。
B是正确的;
C选项是因为编译器在编译的时候i的值还不能够使用,编译器会认为i不是一个数字。
D和C基本同理

个人理解,不知道是否正确。

答案肯定是B毫无疑问,一楼的A选项说的不对,字符数组是可以直接赋字符串的,数组的名字就指向这个字符串存储空间的首地址因为是连续的,所以可以直接复制字符串。

上一个:VC中怎么定位MessageBox出现的位置
下一个:关于VC中的for的疑问,究极菜鸟求高手赐教

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,