[英]c++ pointer to a reference
在C ++中使用引用指針是否合法?
例如:
int &ref = array[idx];
func(&ref);
如果func()已經存在於您無法更改的庫中,我可以想到為什么您可能想要這樣做的一個原因。
它不是。 可以采用引用的地址,但“指向T的引用的指針”不是有效類型。 你在這里做的是獲取指向對象本身的指針,因為對對象的引用只是創建了另一個名稱,您可以通過該名稱訪問該對象 。
該代碼是合法的,但它不會創建指向引用的指針。 它創建一個指向引用對象(指針)的指針。
指向對象的指針和引用不是指向它的指針。 參考只是一個別名 。
關於SO的這篇文章有信息 - 為什么指向參考的指針是非法的?
如果“有一個引用的指針”,你的意思是取一個引用的地址(如你的樣本: &ref
),那么它是完全合法的。 任何變量是一個標識符,因此&
可通過C ++的§5.3.1-2被施加- 03。 引用類型表達式是左值,因此&
適用由相同的部分。
如果“有一個引用的指針”是指一個指向引用的指針的類型(例如int &*
),則不是§8.3.2-4(以及§8.3.1-4中的注釋)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.