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;

因为,别名不是指任何东西。