考虑下面的程序
#include <stdio.h>
void main(){
int p = -8;
int i = (p++, ++p);
printf("%d\n", i);
}
Run Code Online (Sandbox Code Playgroud)
我无法理解输出为-6的原因.
p++在赋值语句执行后++p会增加,在此之前会增加-8到-7.
怎么i分配-6?
因为对于逗号运算符,A,B然后A首先完成B,然后p++递增p,并++p递增p.运算符优先级.
或者这样想
int i = (p++, ++p);
Run Code Online (Sandbox Code Playgroud)
是
p++;
int i = ++p;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |