因为C是先发明的.我不知道他们当时是否没有考虑过引用(大部分是不必要的),或者是否有某些特殊原因不包括它们(可能是编译器的复杂性).它们对于面向对象和通用结构肯定比C的过程风格更有用.
引用参数最初是由AFAIK发明的,一方面是:运算符重载语义.例如,operator []只需要返回一个引用.
然后,对于任何其他事情都应该使用"隐藏指针",这是一个充满争议的主题.
许多公司的许多开发会议文件都说"从不使用引用.如果你需要指针,就这么说".
然而,随后发现引用有一个主要优点(不,不是语法糖).这是:参考保证有效,除非你真的很难打破它.
就个人而言,我仍然不明白为什么我不能在C++中这样做:
int a1, a2;
int &b = a1;
&b = a2; // Error. address of referenced is not an lvalue. Why?!
Run Code Online (Sandbox Code Playgroud)