簡體   English   中英

c ++指向引用的指針

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM