形參是傳值作用,如果形參不進行引用的話,把函式呼叫時的引數的值,傳遞給形參。如果形參進行引用,那麼就相當於把函式呼叫時的引數,在子函式裡面起了個別名。所以如果想通過子函式改變變數的值,那麼就有兩種解決方案,分別是引用和指標的指標。
相當於在子函式裡面起了個別名。所以,在子函式裡面就直接用別名操作就可以。
1.變數的引用int &new = past
2.陣列的引用int(&new)[10] = past
3.指標的引用int *&new = past (指標做引數時,如果想在子函式中修改指標指向的位址,第一可以用二維指標,第二就是這裡用指標的引用)
4.常引用const int &new = past
注意:陣列的引用作為函式的引數:c++的陣列型別是帶有長度資訊的,引用傳遞時如果指明的是陣列則必須指定陣列的長度,因此可以驗證輸入陣列的長度是否正確。
#include
using namespace std;
void
swap
(int
&a,int
&b)void
nch(
const
int&a)
intmain()
傳遞乙個位址就好了。
#include
#include
using namespace std;
void
swap
(int
*p1,
int*p2)
void
main()
1.引用的時候實際不分配位址,還是對原來的變數進行操作,而指標的指標是需要分配空間的。所以,當需要傳遞較大的值,且不想把他改變的時候,可以採用常引用。既可以提高傳遞效率。而且還不會修改值,相當於const int *const p
,位址和值都不能改變。
2.引用的時候,直接用新名進行操作,比較方便,而指標的指標每次用都要先加*
C 引用 和指標在作為形參時的區別
nt n int m n 在c 中,多了乙個c語言沒有的引用宣告符 如上,m就是n的引用,簡單的說m就是n的別名,兩者在記憶體中佔同樣的位置,不對m開闢新的記憶體空間,對m的任何操作,對n來說是一樣的。對於引用,有以下三條規則 1 引用被建立的同時必須被初始化 指標則可以在任何時候被初始化 2 不能...
C 引用 和 指標 在作為形參時的區別
一 熱身準備 int n int m n 在c 中,多了乙個c語言沒有的引用宣告符 如上,m就是n的引用,簡單的說m就是n的別名,兩者在記憶體中佔同樣的位置,不對m開闢新的記憶體空間,對m的任何操作,對n來說是一樣的。二 對於引用,有以下三條規則 1 引用被建立的同時必須被初始化 指標則可以在任何時...
引用形參 指標形參的使用
引用形參 指標形參可以改變主函式內的實參值 includeusing std cin using std cout using std endl 形參其實是在把實參傳遞給子函式的時候定義了乙個新的變數,但是這個變數的值和實參相等,所以在子函式裡無論怎麼修改都不會影響到呼叫它的函式的實參的值 int ...