我在C中编写了一个小型测试应用程序,并在我的Ubuntu 14.04上预装了GCC 4.8.4.我感到困惑的是,表达式的a=(b++);行为方式与此相同a=b++;.使用以下简单代码:
#include <stdint.h>
#include <stdio.h>
int main(int argc, char* argv[]){
uint8_t a1, a2, b1=10, b2=10;
a1=(b1++);
a2=b2++;
printf("a1=%u, a2=%u, b1=%u, b2=%u.\n", a1, a2, b1, b2);
}
Run Code Online (Sandbox Code Playgroud)
gcc编译后的结果是a1=a2=10,而b1=b2=11.但是,我希望括号b1在赋值之前增加a1.
也就是说,a1应该是11而a2平等10.
有没有人对这个问题有所了解?