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;
因為,別名不是指任何東西。