现在的位置: 首页 > 综合 > 正文

出识指针9(容易误解的指针)

2017年09月22日 ⁄ 综合 ⁄ 共 363字 ⁄ 字号 评论关闭
<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)是不能正确运行的。

抱歉!评论已关闭.