C++標準規定:
引用的右值必須是變量名,不能是表達式。
以下語句是錯誤的:
int a = 0;
int *&p = &a;
此規定是基於以下示例代碼:
int a;
int *p1 = &a;
int *p2 = &a;
int *&pr = &a;
無法確定pr是對p1的引用還是對p2的引用。
正確的用法應該是這樣的:
int a;
int *p = &a;
int *&pr = p;
C++標準規定:
引用的右值必須是變量名,不能是表達式。
以下語句是錯誤的:
int a = 0;
int *&p = &a;
此規定是基於以下示例代碼:
int a;
int *p1 = &a;
int *p2 = &a;
int *&pr = &a;
無法確定pr是對p1的引用還是對p2的引用。
正確的用法應該是這樣的:
int a;
int *p = &a;
int *&pr = p;