求助 :指针数组 和数组指针 的问题
1 #include <stdio.h>2
3 int main(void)
4 {
5 char *str[] = {"Welcome", "to", "Fortemedia", "Nanjing"};
6 char **p = str + 1;
7 str[0] = (*p++) + 2;
8 str[1] = *(p+1);
9 str[2] = p[1] + 3;
10 str[3] = p[0] + (str[2] - str[1]);
11 printf("%s\n", str[0]);
12 printf("%s\n", str[1]);
13 printf("%s\n", str[2]);
14 printf("%s\n", str[3]);
15 return 0;
16 }
运行结果:
(空)
Nanjing
jing
g
令:
第 1 个字符串的首地址的存放地址,标记为 A, 其内容为“Welcome”.
第 2 个字符串的首地址的存放地址,标记为 B, 其内容为“to”.
第 3 个字符串的首地址的存放地址,标记为 C, 其内容为“Fortemedia”.
第 4 个字符串的首地址的存放地址,标记为 D, 其内容为“Nanjing”.
请帮忙解释下 为什么str[0]为空, str[3]为 g
代码 第6行结束时,p指向B
代码 第7行是 str[0]指向 哪儿呢?
代码 第10行的p[0]不是指向C吗?