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\t",p);
add(p);
printf("增加后地址%d",p);
return 0;
}
指針型變量的值的自增運算
void add(int *&t){
++(*t);
}
int main(){
int a=10;
int *p=&a;
printf("%d\t",*p);
add(p);
printf("%d",*p);
return 0;
}