c语言中的括号和点顺序
brackets and points order in language c
我想知道在 c 语言中,a.b[i]
和 (a.b)[i]
是一回事吗?
这里a是结构体,b是他的成员(b是数组或者指针).
我刚刚读了一篇关于 c 运算符优先级的文章,它告诉我 [ ](括号) 运算符先于 .(point),这两个 c 运算符的 关联性是从左到右 :
那么下面的表达式(c)的顺序是什么?
a.b.c[i].d[j]
运算符 .
和 []
具有相同的优先级,并且从左到右计算。表达式 a.b[i]
与 (a.b)[i]
相同
表达式 a.b.c[i].d[j]
的计算结果为:((((a.b).c)[i]).d)[j]
我想知道在 c 语言中,a.b[i]
和 (a.b)[i]
是一回事吗?
这里a是结构体,b是他的成员(b是数组或者指针).
我刚刚读了一篇关于 c 运算符优先级的文章,它告诉我 [ ](括号) 运算符先于 .(point),这两个 c 运算符的 关联性是从左到右 :
那么下面的表达式(c)的顺序是什么?
a.b.c[i].d[j]
运算符 .
和 []
具有相同的优先级,并且从左到右计算。表达式 a.b[i]
与 (a.b)[i]
表达式 a.b.c[i].d[j]
的计算结果为:((((a.b).c)[i]).d)[j]