c - 使用算术索引数组而不是显式/单个值会导致问题吗?

标签 c arrays operator-precedence

a[b]

等同于*(a + b),所以...

a[b & c]

如果 & 的运算符优先级低于 +,这会导致 *(a + b & c) 还是 *(a + (b & c))?

最佳答案

C Standard, § 6.5.2.1, Array Subscripting说:

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

注意 E2 周围的括号。后一个表达式 (*(a + (b & c))) 是正确的结果。

关于c - 使用算术索引数组而不是显式/单个值会导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713918/

相关文章:

c - C 中的运算符优先级?

计算两个日期之间有多少闰日

arrays - 使用 StructScan 将 postgresql 数组放入结构中

c - 拆分 char[] 并读取 float

c - 优先函数和评估顺序 K&R

Python 是,== 运算符优先级

c++ - 如何在处理负数的 C/C++/Obj-C 中编写模 (%) 运算符

c - 链表给出相同的结果 C

c - memcpy 的失败场景

使用数组的循环队列操作