这段代码:
int a = 5;
int& b = a;
b = 7;
cout << a;
Run Code Online (Sandbox Code Playgroud)
打印出7,替换int& b
为int &b
打印7.
事实上也是如此int&b
,并int & b
.
我用一个简单的类来测试这种行为.一般来说,是否相对于类型和标识符放置&符号是否重要?谢谢.
Ry-*_*Ry- 17
不,除了编码风格之外绝对没有区别.我认为关于编码风格的主要论点是这个声明:
int& a, b;
Run Code Online (Sandbox Code Playgroud)
声明a
作为int&
和b
作为int
.
在类C语言中,空白大多无关紧要.
您列出的所有版本都解析为相同的三个令牌:
int
&
b
所以它们对编译器意味着相同.
空白的唯一重要时刻是它将两个字母数字标记分开,即使这样,只要存在一些空格的数量和类型并不重要.但任何类型的标点符号总是成为与字母数字相对应的单独标记,不需要空格.
所以你的代码可以变得如此简短:
using namespace std;int a=5;int&b=a;b=7;cout<<a;
Run Code Online (Sandbox Code Playgroud)
剩下的空白是必需的.
一般来说,是否相对于类型和标识符放置&符号是否重要?
发布的示例并不重要,但有些情况下:
int & a, b; // b is not a ref
int const * a; // pointer to const int
int * const a; // const pointer to int
Run Code Online (Sandbox Code Playgroud)
一如既往,空白并不重要.