为了账号安全,请及时绑定邮箱和手机立即绑定

为什么星号在变量名之前而不是类型后面?

为什么星号在变量名之前而不是类型后面?

C
Qyouu 2019-07-10 15:17:27
为什么星号在变量名之前而不是类型后面?为什么大多数C程序员都这样命名变量:int *myVariable;而不是这样:int* myVariable;两者都是有效的。在我看来,星号是类型的一部分,而不是变量名称的一部分。有人能解释这个逻辑吗?
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

它们是完全等同的。然而,在

int *myVariable, myVariable2;

很明显,MyVariable有类型INT*,而myVariable 2的类型为INT..在……里面

int* myVariable, myVariable2;

很明显,两者都是类型的。INT*,但这是不正确的,因为myVariable2有型INT.

因此,第一种编程风格更直观。


查看完整回答
反对 回复 2019-07-10
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如果你换个角度看,*myVariable是类型的int,这是有道理的。


查看完整回答
反对 回复 2019-07-10
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

因为该行中的*比类型更紧密地绑定到变量:

int* varA, varB; // This is misleading

正如@Lundin在下面指出的那样,Const增加了更多的微妙之处。您可以完全避开这一点,方法是每一行声明一个变量,这绝不是模棱两可的:

int* varA;
int varB;

清晰的代码和简洁的代码之间的平衡是很难达到的-十几行冗余的代码int a;也不好。尽管如此,我还是默认为每行一个声明,并担心以后会合并代码。


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 687 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信