<span style="font-size:24px;">void main() { char *str = "title china is big"; char *p = str;//存储首地址 while(*str) { putchar(*str); str++; } system(p); printf("\n%s",*str); system("pause"); }</span>
*p = str时,p跟str指向同一个位置,当str++时,会容易误以为此时*p 与 *str 还是相等的。这是因为受之前 基本类型变量的地址赋值给指针的影响,以为 这里跟 int a = 3,int *p = &a,此时 若 *p = 4,则a 也等于4。其实这里是不一样的,当str++时,指针str 就会向前移动,p还在原来的位置。所以,此时system(p)能正确运行,system(str)是不能正确运行的。