C语言语句执行

下列操作中,正确的是?
A.char s[7];int *p=s=560;
B.char s[6];int *p,*p2=s;*p=*p2
C.int a[7],*p;p=a;
D.int a[6],*p;p=&a;
都错哪了?求解释

正确答案选C
A, s是字符串,不能赋值整型
B, p是int型指针,不能指向char *,即使可以指针赋值也是p2=s
D, 数组名即是数组的首地址,对p赋值直接使用p=a追问

再问一题哈
char str[10];str="string";
char s[10]="ab";
为什么第一个错第二个对

追答

第一个把字符串赋值给了一个字符,肯定错,第二个把一个字符串在初始化的时候赋值给字符串数组是允许的

温馨提示:答案为网友推荐,仅供参考
相似回答