你更喜欢& cycle-> read_events [i]和cycle-> read_events + i

时间:2011-06-18 05:15:11

标签: c syntax

&cycle->read_events[i]


cycle->read_events+i 

他们是一样的,你更喜欢一个到另一个?

2 个答案:

答案 0 :(得分:1)

假设cycle-> read_events是一个指针或数组,它们在语言中是相同的,并且编译方式相同。

但是,我更喜欢&cycle->read_events[i],因为有一天你可能决定移植到C ++并使用向量或其他容器类。这些类更有可能拥有[]运算符,而不是将+实现为“指针运算”。因此,这种方式可以更轻松地更改数据类型,而无需重新编译。

(就我个人而言,我发现&a[x]a+x更能表达意图,但这纯粹是品味问题。)

答案 1 :(得分:1)

根据 C编程风格的元素

14.1使用[b]代替*(a + b)

14.2通常,使用* a而不是[0]

14.3一般情况下,使用+ b而不是& a [b]

这些规则的基本原理大致相同:它更短,通常更清晰。