這是很常見的知識來聲明指針語義準確的方法是什麼是在C++引用符號語義準確位置
int *x;
,而不是
int* x;
這是因爲C認爲*x
作爲一個int,而不是x
作爲一個int指針。
這可以通過
int* a, b;
其中a
是int指針可以容易地表現出來,而b
是int。
在stackoverflow.com上至少有5個重複問題,討論這個問題的指針。但是關於參考呢?
這是很常見的知識來聲明指針語義準確的方法是什麼是在C++引用符號語義準確位置
int *x;
,而不是
int* x;
這是因爲C認爲*x
作爲一個int,而不是x
作爲一個int指針。
這可以通過
int* a, b;
其中a
是int指針可以容易地表現出來,而b
是int。
在stackoverflow.com上至少有5個重複問題,討論這個問題的指針。但是關於參考呢?
雖然研究了這個問題,我已經找到了答案:
的&
需要編寫就像*
。
演示代碼是類似於指針示範代碼:
int main() {
int a = 0;
int b = 1;
int& ar = a, br = b;
br = 2;
return b;
}
這將返回1,這意味着ar
是一個int參考,而br
僅僅是一個整數。
許多風格指南爲每個聲明建議一個變量。雖然可能有多於一個,但在指針和引用聲明方面可讀性得到了改進。 –
@ThomasMatthews:當然。絕不鼓勵在一個語句中實際聲明多個指針,引用或變量。這只是「C++」內部工作的演示。 –
感謝 「模板類型定義」,您可以在(可以說)更好的方式宣告多次引用:
template<typename T> using ref = T&;
int a, b;
ref<int> ar = a, br = b;
有趣的一點。 –
Downvoters,心中解釋?發佈您已有答案的問題是否被認爲是不好的風格?這不就是那個按鈕的用途嗎? –
空間並不重要,因爲它們在放鬆階段被跳過。星號前可以有零個或多個空格,零個或多個空格。 **它們都將x聲明爲指針,而不是參考。** –
@mic_e:完全是*那個按鈕的用途。我們甚至在meta上有一篇文章展示它:http://meta.stackexchange.com/questions/132886/what-is-this-answer-your-own-question-jazz不幸的是,這常常被視爲企圖獲得更多代表,儘管回答你自己的問題當然是值得鼓勵的。 – BoltClock