int &ref 和 int& ref 有区别吗?
1.结论:
对单个变量声明,int &ref; 和 int& ref; 没有任何区别,都会声明一个 int 的引用。
规则: 引用/指针修饰符(&/*)属于“声明符”(declarator),不是类型本身;因此空格位置不影响语义。
2.多变量声明有区别:
int& a, b; 与 int &a, b; 都只让 a 成为引用,b 仍是普通 int。要让两者都是引用需写成 int &a, &b;,或分别声明为 int& a; int& b;。
指针类比: 同样的规则适用于指针:int* p, q; 中只有 p 是指针,q 是 int;两个指针需 int *p, *q;。
建议: 避免一行声明多个变量以减少误解;风格上可统一选择 int& x(把 &靠近类型)或 int &x(靠近变量名),保持一致即可。函数参数中常见写法是 void f(int& x)。

浙公网安备 33010602011771号