f (int &a) 引用类型 引用传递
f (int *a) 指针类型 (int *指向int型变量的指针类型)值传递
1:void f(int &a) {
a=4;
return;
}
主函数中:int x=0;
f(x);
结果 x=4
2:void f(int *a) {
*a=4;
return;
}
主函数中:int x=0;
f(&x);
结果 x=4
int a=100:a代表4字节存储空间int &b=a: b和a一样代表4字节存储空间 =》1里,调用后 a和x 代表同一块地址空间
int *c=&a:c代表另一个存储空间,存放的值是a的存储空间的首地址 =》2里,调用后 a的值是x的存储空间的首地址
3. 传指针,并修改指针的值
char a[5]="aaaa";
void f(char **p) {
*p = a;
}
主函数中:
int main() {
char *p;
f(&p);
printf("%s", p);
}