c 语言 const 引用,C ++:const引用,类型说明符之前和之后

2029199fad3df8d61d036cc406ca4c68.png

慕慕森

行为const T&和之间没有语义差异T const&;语言将它们视为相同类型。(同样的道理也适用于const T*和T const*。)作为风格问题但是,关于在造型上您更喜欢哪个,我将拒绝其他许多答案,并且更喜欢const T&(和const T*):const T&是Stroustrup的《 C ++编程语言》一书中使用的样式。const T& 是C ++标准本身使用的样式。const T*是K&R的《 C编程语言》一书中使用的样式。const T* 是C标准中使用的样式。由于上述因素,我认为const T&/ const T*具有比T const&/ 更多的惯性T const*。const T&/从const T*经验上看,对我来说比T const&/ T const*在我所见过的所有C ++和C代码中更常见。我认为遵循常规做法比从原则上遵循从右到左的解析规则更具可读性。使用T const*,将*as 放错地方似乎更容易T* const(尤其是如果人们不习惯它)。相反,const* T不是合法的语法。从右到左的解析规则呢?关于人们似乎喜欢使用的从右到左的整个解析论点:正如我在另一个答案的评论中提到的,const T&从右到左也不错。它是对T常数的引用。“ T”和“ constant”都可以用作形容词或名词。(此外,读取T const*从右到左可以是不明确的,因为它可能被错误地解释为“指针常数到 T”,而不是称为“指针以恒定T”)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值