void test(int *s) {
int tmp = 100;
s = &tmp; //尝试对s的指向做了改变,但只是在局部有效
cout<< *s <<endl;
}
void test2(int **s) {
int tmp = 100;
*s = &tmp;//对s的指向做了改变,即改变了s的指向,之前s指向的数并没有改变
cout << *s << endl;
}
void test3(int *s) {
int tmp = 100;
*s = tmp; //对s指向的数的值做了改变。
cout << *s << endl;
}
int main() {
int T = 99;
int *p = &T;
cout << *p <<endl;
//test(p);
test2(&p);
//test3(p);
cout << *p <<endl;
}
其中,test2和test3都可以实现目的,区别已经备注