我想通过多级指针改变某个参数的值,代码如下:
void f(int ** q){int ai = 100;*q = &i;}
void g(void){int i = 10;int * p = &i;
f(&p);printf("i = %d\n",i);}
int main(void){g();
return 0;}这样写为什么还是改写不了i的值啊?;
你改的是p的值,即p指向的地址,也就是f()之后p没有指向i了。所以如果输出*p会看到“i = 100”。