定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的为啥是 C?A)p=s; B)p=k; C)p=s[0]; D)k=s

2025-02-24 12:48:32
推荐回答(2个)
回答1:

A——p是char *型,s是char (*)[10]型,二者类型不匹配,错。
B——p是char *型,k是char (*)[3]型,二者类型不匹配,错。
C——p是char *型,s[0]就是&s[0][0],也是char *型(&s[0][0]是第0行第0个元素的地址),正确。
D——k是char (*)[3]型,s是char (*)[10]型,二者不类型不匹配,错。

回答2:

p是char型指针,必须指向char型变量,s是char型数组,k是char型指针数组,s[0]是char型变量,所以A,B都错了,C是对的,k是char型指针数组,当其单独使用时表示首地址即此数组中第一个指针,也应该指向char型变量,而s是char型数组,所以错误