<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)是不能正确运行的。
本文通过一个简单的C语言程序示例,详细解释了如何遍历字符串以及指针变量在操作过程中的行为差异。同时介绍了system函数的基本用法,并强调了在字符串遍历完成后使用system函数时需要注意的问题。
1738

被折叠的 条评论
为什么被折叠?



