1613551 发表于 2022-7-15 10:33:47

关于表达式的问题

我不是很理解为什么这两个表达式的值不一样,不应该都是等于3吗

#include <stdio.h>
int main(void)
{
      int k = 7, x = 12;

      printf("%d\n", x %= k - k % 5);
      k = 7, x = 12;
      printf("%d\n", (x %= k) - (k %= 5));
      return 0;
}

青出于蓝 发表于 2022-7-15 10:33:48

第一个:k除以5余数为2,k-2=5 ,x除以5余数为2      输出2
第二个:x除以k余数为5 ,k除以5余数为2 ,5-2=3       输出3

风车呼呼呼 发表于 2022-7-15 11:10:35

   x %= (k - k % 5)
(x %= k) - (k %=5)
赋值运算符优先级很低的
页: [1]
查看完整版本: 关于表达式的问题