请教一个c语言指针的题目


请帮忙解释:


 #include <stdio.h>

void g(int**p)
{
  (**p)++;
  (*p)++;
}

int main(int argc, char *argv[])
{
  int line[10], i;
  int *p= line;

  for(i=0; i< 10; i++){
    *p=i;
    g(&p);
  }

  for(i=0;i<10;i++)
    printf("%d\n", line[i]);

  return 0;
}

为什么输出结果为:


 1
2
3
4
5
6
7
8
9
10

c 指针

鸡鸡没YY 11 years, 6 months ago

这也没什么吧, line[0] = 0, 然后在g函数里, line[0] 被++, 同时这个p向前 指向了 line[1], 然后line[1] =1, 在g函数里, line[1] 被++, 同时这个p向前 指向了 line[2],...

lacus answered 11 years, 6 months ago

Your Answer