int main()
{
char *str[] = {"Welcome", "to", "Fortemedia", "NanJing"};
char **p = str +1;
str[0] = (*p++)+2;//这里还真有点模糊了,经过验证。。++是先计算的,相当于(*(p++))..
str[1] = *(p+1);
str[2] = p[1]+3;
p[0];
str[3] = p[0]+(str[2]-str[1]);//这里做错了,原因是,p[0]此刻指向的内容已经不是Fortemedia,而是Jing...在执行到这句话的时候,STR[]里面的地址已经改变了。。之前却忘记考虑了。
printf("%s\n", str[0]);
printf("%s\n", str[1]);
printf("%s\n", str[2]);
printf("%s\n", str[3]);
getchar();
return 0;
}
{
char *str[] = {"Welcome", "to", "Fortemedia", "NanJing"};
char **p = str +1;
str[0] = (*p++)+2;//这里还真有点模糊了,经过验证。。++是先计算的,相当于(*(p++))..
str[1] = *(p+1);
str[2] = p[1]+3;
p[0];
str[3] = p[0]+(str[2]-str[1]);//这里做错了,原因是,p[0]此刻指向的内容已经不是Fortemedia,而是Jing...在执行到这句话的时候,STR[]里面的地址已经改变了。。之前却忘记考虑了。
printf("%s\n", str[0]);
printf("%s\n", str[1]);
printf("%s\n", str[2]);
printf("%s\n", str[3]);
getchar();
return 0;
}