當前位置:
首頁 >
形参的与*的区别
發布時間:2024/9/30
29
豆豆
在定義時,* 是一個標識符,聲明該變量是一個指針,比如說int *p; 那p就是一個指向int型的指針;
在調用時,*p是指指針p指向的那個變量,比如說之前有int a=5;int p=a;那么p的值是a的地址,也就是指針p指向a,p則等于a的值,即p=5。
而&,則是引用,比如說有定義int a=5;再定義int b=&a;那么這里的b則引用a的值,即b=5
,而再給b賦值:b=10,a的值也會變為10。
我想樓主會問和&的區別,應該是針對函數定義里的參數而言吧,因為這里的這兩者比較相似:
舉幾個簡單例子:
先定義有int x=0;和int *p=x;
1、若定義函數: void fun_1(int a){ a=5;} , 則調用:fun_1(x); 之后,x還等于0;因為fun_1函數只改變了形參a的值,a只是fun_1函數里的局部變量,調用fun_1(x)相當于是“a=x;a=5;”,x沒變;
2、若定義函數:void fun_2(int &a){ a=5;} , 則調用:fun_2(x); 之后,x等于5;因為這里的a引用了x的值;
3、若定義函數:void fun_3(int a){ a=5;} , 則調用:fun_3§; 之后,x也等于5;因為fun_3函數的參數a是一個指針,相當于a=p;a則與p指向同一地址,改變a即改變p即x
總結
- 上一篇: Mybatis 学习日记(1)
- 下一篇: HTTP请求头中各字段解释