4.1 算术运算符

note

  1. % 运算符要求操作数均是整数
  2. 当 / 和 % 用于负数时,其结果于具体实现有关

4.1.1 优先级和结合性

运算符的右结合:指从右向左运算
-+i = -(+i);

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i=10;
  5. printf("%d",-+i);
  6. return 0;
  7. }
  8. // 输出
  9. -10

4.2 赋值运算

4.2.1 简单赋值

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i,j,k;
  5. i=j=k=10;
  6. printf("%d,%d,%d",i,j,k);
  7. return 0;
  8. }
  9. // 输出
  10. 101010

note

  1. 如果是具有类型转换,上面的赋值方式是不可取的,会产生未知错误

4.3 自增,自减运算

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i=1;
  5. int j=1;
  6. // ++ 在前,先对 i 进行取代运算,再输出
  7. printf("%d,%d\n",++i,i);
  8. // ++ 在后,先对 i 输出,再进行运算
  9. printf("%d,%d",j++,j);
  10. return 0;
  11. }
  12. // 输出
  13. 22
  14. 12

4.4 表达式求值

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int a = 5;
  5. int b;
  6. int c = (b=a+2)-(a=1);
  7. printf("%d",c);
  8. return 0;
  9. }
  10. // 尽量避免上面的写法,因为在实际情况中,可能出现 c =6 或者 =2 的情况