&cycle->read_events[i]
cycle->read_events+i
他们是一样的,你更喜欢一个到另一个?
答案 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]
这些规则的基本原理大致相同:它更短,通常更清晰。