char str[4][12] = {"aa","bbb","ccccc","dddddd"},*strp[4]; int i; for(i=0;i<4;i++)strp[i] = str[i];

char str[4][12] = {"aaa","bbbb","ccccc","dddddd"},*strp[4];
int i;
for(i=0;i<4;i++)
strp[i] = str[i];
错误引用字符串的选项是:其中(0=<k<4)
A.strp[k]
B.str[k]
C.strp
D.*strp
最新回答
孤冢清风

2024-11-25 04:41:24

错误选C

strp是

指针数组
,这里

for(i=0;i<4;i++)
strp[i] = str[i];

是将

字符串
数组的每行首地址赋值给了指针数组的每个元素。

所以要打印字符串,就是要得到每行首地址。

strp[k]、str[k]显然都是行的首地址。

而strp是指针数组的变量名,相当于数组首元素的地址,也就是第一个指针。我们要的是指针里存放的字符串首地址,所以应该是*strp,而不是strp。

所以C是错误的。