2014-03-31 29 views
2

這是很常見的知識來聲明指針語義準確的方法是什麼是在C++引用符號語義準確位置

int *x; 

,而不是

int* x; 

這是因爲C認爲*x作爲一個int,而不是x作爲一個int指針。

這可以通過

int* a, b; 

其中a是int指針可以容易地表現出來,而b是int。

在stackoverflow.com上至少有5個重複問題,討論這個問題的指針。但是關於參考呢?

+0

Downvoters,心中解釋?發佈您已有答案的問題是否被認爲是不好的風格?這不就是那個按鈕的用途嗎? –

+3

空間並不重要,因爲它們在放鬆階段被跳過。星號前可以有零個或多個空格,零個或多個空格。 **它們都將x聲明爲指針,而不是參考。** –

+1

@mic_e:完全是*那個按鈕的用途。我們甚至在meta上有一篇文章展示它:http://meta.stackexchange.com/questions/132886/what-is-this-answer-your-own-question-jazz不幸的是,這常常被視爲企圖獲得更多代表,儘管回答你自己的問題當然是值得鼓勵的。 – BoltClock

回答

3

雖然研究了這個問題,我已經找到了答案:

&需要編寫就像*

演示代碼是類似於指針示範代碼:

int main() { 
    int a = 0; 
    int b = 1; 

    int& ar = a, br = b; 

    br = 2; 

    return b; 
} 

這將返回1,這意味着ar是一個int參考,而br僅僅是一個整數。

+4

許多風格指南爲每個聲明建議一個變量。雖然可能有多於一個,但在指針和引用聲明方面可讀性得到了改進。 –

+0

@ThomasMatthews:當然。絕不鼓勵在一個語句中實際聲明多個指針,引用或變量。這只是「C++」內部工作的演示。 –

3

感謝 「模板類型定義」,您可以在(可以說)更好的方式宣告多次引用:

template<typename T> using ref = T&; 
int a, b; 
ref<int> ar = a, br = b; 
+0

有趣的一點。 –

相關問題