“int& temperature”与C ++中的“int& temperature”相同吗?

时间:2013-10-29 02:42:45

标签: c++ syntax pass-by-reference declaration function-prototypes

我正在为CS课做作业,他们希望我为此做一个原型:

void myFunction(double pressure, int &temperature, double &volume){
     ...
}

但我明白应该更像这样:

void myFunction(double pressure, int& temperature, double& volume){
     ...
}

有谁能告诉我这里有什么棘手的东西吗?在编译时,int &temperatureint& temperature是否相同?

3 个答案:

答案 0 :(得分:4)

简短回答:是的,它们是一样的。除非存在另外指定的括号,否则间距在&*修饰符的任一侧表示相同的内容。之后,它是一个代码样式选项,主要取决于您。

答案 1 :(得分:3)

它们完全一样。令牌之间的空格(大部分)是无关紧要的。

答案 2 :(得分:3)

使用*&时,空格无关紧要,因此:

int &temperature

相当于:

int& temperature

还有:

int & temperature

你将使用哪一个只是品味问题。我个人更喜欢第二个,因为temperature的类型是int&,即我发现将它与类型保持在一起更合理。但是,我很确定有些人可能会提出合理的论据来解释为什么他们更喜欢另一个。

然而,白色空间对于保持代码清洁非常重要。易于阅读。虽然,你总是会遇到一些讨厌的东西,比如if (a --> 3):)