#include<stdio.h> #include<string.h> int main(){ char *str[4]={"welcome","come","to","jiaozuo"}; printf("%s\n",*(str+1)); char **p = str+1; printf("%s\n",*p); // str[0] = (*p+1)+2;//p并没有向后移动,仍指向"come" // printf("%s\n",*p);//输出 e str[0] = (*p++)+2;//p先取值,再向后移动1,指向"to" printf("%s\n",*p);//输出 me // printf("%s\n",str[0]); // str[1] = *(p+1)+2; str[1] = *(p+1)+2;//p先向后移动1,再+2; printf("%s\n",str[1]); str[2] = p[1]+2; return 0; }
辨别:
1>(*p+1)与*(p+1)
前者p的位置不变,后者p的位置向后移动
2>(*p++)+2与*(p+1)+2
前者p+2后,再移动;后者先移动,后+2