常數沒有位址,對於常數的引用必須是個const&,
同樣的,如果x是個const的話,int g(int &a)也會報錯:
結論:如果不需改變形參的值又不用作引數傳遞(實參賦值給形參),用常引用作形參適應面最廣:實參可以是變數也可以是常量。
如果需要改變形參的值,用引用作形參最合適:實參必須是變數不允許是常量。
如果不需改變形參的值又可以用作引數傳遞(實參賦值給形參),用普通變數作形參:多了傳遞引數的開銷。
對比一般引用作形參和常引用作形參
一般引用作形參:
1.不用作引數傳遞(實參賦值給形參),節省開銷,提高效率。
2.函式可以改變形參的值
3.實參不能是常量
常引用作形參有3個作用:
1.不用作引數傳遞(實參賦值給形參),節省開銷,提高效率。
2.函式不能改變形參的值
3.實參可以是常量
指標的引用作形參
include stdafx.h include iostream using namespace std typedef struct pos pos void func pos p 指標的引用 int tmain int argc,tchar argv pos p cin p.x p.y pos...
常指標 常引用作為形參和返回值
include using namespace std const int n 10 intsum1 const int p return sum void sum2 const int p,int s 常量指標,普通指標,無返回 const int sum3 const int p,int s 指...
指標和引用作為形參傳遞下去的區別
int n int m n 在c 中,多了乙個c語言沒有的引用宣告符 如上,m就是n的引用,簡單的說m就是n的別名,兩者在記憶體中佔同樣的位置,不對m開闢新的記憶體空間,對m的任何操作,對n來說是一樣的。對於引用,有以下三條規則 1 引用被建立的同時必須被初始化 指標則可以在任何時候被初始化 2 不...