本帖最后由 星河鹭起 于 2014-4-20 11:57 编辑
#include<stdio.h>
int main()
{
int a=1;
int b;
b=++a;//此时b=2,a=2
b=(a++)+(++a);//此时b=4,第一个a的值为2,为什么第二个a的值为什么是4?
printf("b=%d,a=%d\n",b,a);
return 0;
}
自增运算++优先级高于+,且从左往右开始运算。
因此首先a运行完后,因为这里a有个括号,就导致直接加1,变成了3,此时在运行++a,所以此时a就变成了4。
a++ |