C 引用是現有變數的別名

C++中的 Reference 只是一個 Alias 或變數的另一個名稱。就像我們大多數人可以使用我們的護照名稱和暱稱一樣。

字面上不存在引用,它們不佔用任何記憶體。如果我們列印引用變數的地址,它將列印與其引用的變數相同的地址。

int main() {
    int i = 10;
    int &j = i;
    
    cout<<&i<<endl;
    cout<<&b<<endl;
    return 0;
}

在上面的例子中,cout 都將列印相同的地址。如果我們將變數作為函式中的引用,情況將是相同的

void func (int &fParam ) {
   cout<<"Address inside function => "<<fParam<<endl;
}

int main() {
    int i = 10;
    cout<<"Address inside Main => "<<&i<<endl;    

    func(i);

    return 0;
}

在這個例子中,cout 都將列印相同的地址。

我們現在知道 C++ References 只是別名,而且要建立一個別名,我們需要有一些 Alias 可以引用的東西。

這就是為什麼像這樣的語句會丟擲編譯器錯誤的確切原因

int &i;

因為,別名不是指任何東西。