在学习swap函数时,若想改变实参,可以将函参设置为指针类型。
那么函参中的双重指针,也是这种含义。即想改变实参(指针类型)的指向或值时,可以用双重指针。
若只是想改变值,可以使用单指针。
void change(char* p) { p = "bbb"; } int main() { char *v = "aaa"; change(v); printf("%s",v); return 0; }
输出的结果仍然是aaa。函数在传值时会先拷贝一份再传过去,想一想swap函数就理解了。即p和v是两个单独的指针,p指向别的内存,和v无关,v依然指向aaa。
void change(char* p) { *p = "bbb"; } int main() { char *v = "aaa"; change(v); printf("%s",v); return 0; }
这样就可以了,改变值。
void change(char** p) { *p = "bbb"; } int main() { char *v = "aaa"; change(&v); printf("%s",v); return 0; }
双重指针也可以,既可以改变指向、也可以改变值。即p就是v
标签:aaa,int,双重,char,函参中,change,指针 From: https://www.cnblogs.com/xixixing/p/18285442