C语言优先级和结合性

a=(a++)%4怎么运算,求讲解运算规则,书看完不是很理解,不知道怎么具体计算

a++是先运算后自增,所以先计算a%4,然后将a自增,最后将前面的结果赋值给a,所以最后a的值为a%4
有帮助望采纳~

a++与++a的区别:看谁写在前
若是a++:则为先对a进行运算,然后再+1;
若是++a:则为先+1,再对a进行运算

//a=(a++)%4执行顺序
a=a%4;
a++;

//a=(++a)%4执行顺序
a++;
a=a%4;

觉得有用的话采纳一下哈

运算符的优先级问题。
假设a=7

  1. 有括号先算括号里面的 a++ 表示先用a,再将a进行加一操作 所以 (a++) = 7 因为是先用a

  2. 然后=和% %的优先级高于= 所有先计算% 也就是 7%4

  3. 最后赋值给a a=3
    你的疑惑在(a++)
    你可以运行一下这个
    int main()
    {

    int a,b;
    a = 6;
    b = (a++);
    printf("%d,%d\n",a,b);
    a=(a++)%4;
    printf("%d,%d\n",a,b);
    return 0;
    }

输出为:
7,6
3,6
有帮助望采纳~