下面有一段程序,输出结果是99 1 2 3 4 ... 99。
我不明白的是,既然main()传递给g()的是p的地址,那么g()里的*q就相当于main()里的p了,*q++不就改变了p的值吗?但输出结果表明p的值未改变。请教如何解释?
#include <stdio.h>
void g(int **q)
{
**q++;
*q++;
}
void main()
{
int a[100],i,*p=a;
for(i=0;i<100;i++) a[i]=i;
for(i=0;i<100;i++)
{
*p=a[i];
g(&p);
}
for(i=0;i<100;i++)
printf("%d",a[i]);
}