c - 使用 a[i] 和 *(a + i) 有区别吗?

标签 c arrays pointers

<分区>

a[i]*(a + i) 都访问数组 a 的第 i 个元素>.

是否有理由偏爱其中一个(性能、可读性等...)?

最佳答案

从语言的角度来看,两者都不是更好,因为它们是相同的,数组索引应该只是指针运算的语法糖。我们可以从 draft C99 standard 中看出这一点6.5.2.1 数组下标 部分说(强调我的):

[...]The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))).[..]

尽管对于阅读您的代码的其他人来说,a[i] 可能更具可读性。

关于c - 使用 a[i] 和 *(a + i) 有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887169/

相关文章:

将字符数组复制到字符指针中

c++ - 使用裸指针而不是 weak_ptr 有什么好处吗?

c++ - 将函数指针存储为类中的成员

c - 在 C 中释放 NULL 指针是一种好习惯吗?

c - 这个双循环的复杂性是什么

用C语言创建用户名

c - 线程 : lock PTHREAD_MUTEX_ERRORCHECK mutex from non-owner thread

PHP,从带有数字的数组生成上一个和下一个链接

javascript - 将 C# 自定义数组传递给 JavaScript

c - 使用非阻塞 MPI 函数发送矩阵的问题