|
|
1
15
后缀运算符
以及前缀
这与操作员无关 优先 .
(关联性决定了
|
|
|
2
5
运算符优先级和关联性并不能告诉您发生了什么 之前 然后发生了什么 之后 . 运算符优先级/关联性与此无关。在C语言中,时间关系如“before”或“after”由所谓的 序列点 和 只有 按顺序点(这是完全独立的故事)。
运算符优先级/关联性只告诉您哪些操作数属于哪些运算符。例如,表达式
再一次,这并不意味着
例如,编译器可以计算
或者它可以评估如下
注意在第一种情况下
但我必须重申,以上两个例子仅用于说明目的。实际上,表达方式
|
|
|
3
1
正如Andreyt已经指出的,优先级和关联性并不能告诉你评估的顺序。他们只告诉你分组的事情。例如,优先权就是使用
评估顺序由序列点定义。在完整表达式的末尾有一个序列点(除其他外)。在顺序点上,所有先前的评估都必须进行,并且任何后续的评估都不能进行。
查看您的具体示例,在
同样,在后递增版本中,变量可以在赋值之前或之后递增:
或:
但是,无论是哪种方式,分配给
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 9 月前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 10 月前 |
|
|
Bobby · 复合字面值总是左值吗? 10 月前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 10 月前 |