<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)是不能正确运行的。