#include<stdio.h> int main() { int i=10; int *j=&i; if(!0) { int l=20; int *k=&l; j=k; } printf("%d/n",*j); return 0; } 结果是20; #include<stdio.h> int *j; void f() { int l=20; int *k=&l; j=k; } int main() { int i=10; j=&i; f(); printf("%d/n",*j); return 0; } 结果也是20; #include<stdio.h> void f(int* *j) { int l=20; int *k=&l; *j=k; } int main() { int i=10; int *j=&i; f(&j); printf("%d/n",*j); return 0; } 结果依然是20; #include<stdio.h> void f(int* &j) { int l=20; int *k=&l; j=k; } int main() { int i=10; int *j=&i; f(j); printf("%d/n",*j); return 0; } 引用类型 结果依然是20; #include<iostream> using namespace std; int * foo() { int l=20; return &l; } int main() { int i=10; int *j=&i; j = foo(); int k=100; k++; k++; k=*j; cout<<*j<<endl<<*j<<endl; cout<<*j<<endl; return 0; } 很奇妙!(debug模式下和release下不同)