全部问题 > 当前问题

能麻烦解释一下这4个选项吗?区分不清了。

匿名课官 2016-3-16 18:51:30

共 3 个回答

嘿嘿大人 2016-3-17 10:06:42

p是一个存放地址的数组,a中的p[3]代表的是字符串“ddd”的首元素地址,所以*p[3]就是这个字符串的首元素'd',不是字符串是字符;

B和A是同理;

C代表的是“ccc”的字符串首元素地址

D代表的是“aaa”的字符串首元素地址

只要是地址就可以正确调用字符串,

匿名课官 2016-3-17 10:15:45

回复 嘿嘿大人:这里的D选项,按照A的解释,不是应该也是字符串"aaa"的的首元素'a'吗?p的前面也有一个*。

嘿嘿大人 2016-3-17 10:38:05

回复 匿名课官:p代表的是首元素地址的地址,如果你是*p【0】才是代表的a,或者**p代表的是a

问题来自: 指针和二维数组
有以下程序段
  char str[ 4 ][ 12 ]={"aaa","bbb","ccc","ddd" }, *p[4];
  int i;
  for( i=0; i<4; i++ ) p[i]=str[i]; 
以下选项中不能正确引用字符串的是( )
A. *p[3]
B. p[3]
C. str[2]
D. *p
答案:A
解析:A错误 *p[3] 指的是字符'd'