我知道指標是如何作業的:
int a=10;
int* ptr=&a;
cout<<ptr;給我a存盤在
'cout<<&ptr;'ptr
cout<<*ptr中的地址上的值 ptr給我ptr我創建的地址。
那么,別名是什么意思呢?有人可以用一個例子來解釋它,因為我在互聯網上找不到任何東西嗎?
uj5u.com熱心網友回復:
您可以將術語別名視為短語 “another name for”的替代。以下示例應闡明這一點:
using customint = int; //customint is "another name for" int
using customdouble = double; //customdouble is "another name for" double
int i = 0;
int &refI = i; //refI is "another name for" i
在談論(相對于)指標時,我們通常不使用術語別名。
在上面的代碼片段中,我們可以說customint 是int. 我們也可以這樣說,因為customint 是int.
對其他人也是如此。
uj5u.com熱心網友回復:
“給別名”或多或少意味著“參考”。*ptr別名a。
我還沒有聽說過“別名”被用作與指標相關的名詞。
uj5u.com熱心網友回復:
別名和指標解決(原諒雙關語)完全不同的問題(但見下文)。別名允許您為現有的預定義變數型別定義自己的名稱。在 C (自 C 11 起)中,您可以使用using關鍵字來定義別名:
using MYINT = int;
在上面的代碼之后,您可以在任何要使用宣告的地方使用名稱MYINT(別名int) ;因此,以下兩行將是等效的:
int i;
MYINT i;
在 C 11 之前(甚至在純 C 中),別名也可用,使用typedef關鍵字:
typedef int MYINT;
但是,可能讓您感到困惑的是在參考指標時使用術語“別名”(或“嚴格別名規則”)。這些術語指的是嘗試通過指標訪問一種型別的物件時所需的規則,該指標(正式)是不同型別物件的地址。Stack Overflow 上的許多帖子都討論了這個主題;例如:什么是嚴格的別名規則?
uj5u.com熱心網友回復:
在參考宣告之前添加 &。示例: ref 是 a 的別名,在下一個示例中。
int main (int argc, char* argv []) {
int a (10);
int& ref (a);
std::cout << "\tref == " << ref << std::endl;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/444621.html
