相关疑难解决方法(0)

为什么a =(b ++)与a = b ++具有相同的行为?

我在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应该是11a2平等10.

有没有人对这个问题有所了解?

c gcc

18
推荐指数
5
解决办法
2842
查看次数

标签 统计

c ×1

gcc ×1