这两种C++语法之间有什么区别?

Whats the difference between these two C++ syntax for passing by reference?

本文关键字:什么 区别 之间 两种 C++ 语法      更新时间:2023-10-16

我正在学习现代C++,有时我看到通过引用传递的值用空格写得略有不同。

int &i

有区别吗?

int& x

#include <iostream>
using namespace std;
void swapnum(int &i, int &j) {
int temp = i;
i = j;
j = temp;
}
void f(const int& x) {
int& y = const_cast<int&>(x);
++y;
}

不,间距根本没有区别。在您的示例中有所不同的是const关键字(这不是这里的问题(。

间距并不重要,除了你的同事可能会抱怨糟糕的样式。这些形式等效于编译器:

int &i;
int& i;
int&i;
int
&
i;

编译器会在进一步处理之前将代码解析为"词法元素",空格仅用作分隔符。