2013-03-13 221 views
10

在我看到的論點被引用以下列方式通過了例子:通過引用傳遞參數時,可以放置「&」符號嗎?

void AddOne(int &y) 

在我有我看到的語法如下代碼:

void AddOne(int& y) 

不知是否是相同或第二種情況與第一種情況有所不同。

+6

C++中的空白無關緊要。如果你願意,你可以做'void AddOne(int&y)'。 – chris 2013-03-13 16:02:23

+2

@chris:這不完全正確。 'unsignedint'和'unsigned int'是不同的標記序列。但是這個問題中顯示的代碼在代幣中沒有區別。 – 2013-03-13 16:04:31

+1

對於它的價值,我認爲第二種選擇更清晰; 'int&'是'y'的類型。 – JSQuareD 2013-03-13 16:09:13

回答

17

兩者都是正是相同。根本沒有區別。

所有的事情是,&應該是類型變量名之間。空間不重要。

所以

void AddOne(int& y); 
void AddOne(int &y); 
void AddOne(int & y) 
void AddOne(int &  y); 
void AddOne(int&y); 

是一樣的!

+3

以及'int&y'(無空格)。 – 2013-03-13 16:04:55

+1

@BenVoigt:是的。 – Nawaz 2013-03-13 16:05:29

0

void AddOne(int &y); 

void AddOne(int& y); 

甚至

void AddOne(int&y); 
在C++

之間沒有差異,實際令牌之間的空格被丟棄。

相關問題