int x=1;
int *y=&x; //指针传递,y是一个指针,指向x的地址,*y可以获取x的值
int &z=x; //引用传递,可以理解为z就是x,z相当于是x的别名,当函数的参数在函数内部需要改变时,就需要用引用类型。
如果理解不了为什么用引用类型。举个栗子。
定义了一个人,名字叫小王。
然后写一个函数用于改变他的名字,如果不加&的话,就是直接将小王这个人复制了一份,改变的是复制的这份小王的名字,并不是我们一开始定义的那个小王。
引用类型在参数前加&,则是拿过的小王然后给参数,参数指的就是小王,当我们改变参数值时,小王的值也就改变了
代码实例
普通变量的引用类型做自增运算
void add(int &x){
++x;
}
int number=1;
add(number);
指针型变量的地址的自增运算
void add(int *&t){
++t;
}
int main(){
int a=10;
int *p=&a;
printf("初始地址%d ",p);
add(p);
printf("增加后地址%d",p);
return 0;
}
指针型变量的值的自增运算
void add(int *&t){
++(*t);
}
int main(){
int a=10;
int *p=&a;
printf("%d ",*p);
add(p);
printf("%d",*p);
return 0;
}