【C学习随笔】C语言的基本运算符

赋值运算符:=

赋值运算符=并不意味着“相等”,
例如:

1
2
int a = 1;
a = a + 1;

赋值的顺序是从右往左:
例如:

1
2
3
int c = 1;
a = b = c = 1;
printf("%d\n%d\n%d\n", a, b, c);

如此就是先把1赋值给c,然后把c赋值给b,然后把b赋值给a,需要注意的是其他语言尽量回避三重赋值,但是c语言完全没问题的。

加法运算符:+

加法运算符用于加法运算,使其两侧的值相加,
例如:

1
printf("%d", 1 + 3);

打印出的是4而不是表达式,

相加的值可以是变量,也可以是常量,

减法运算符:-

减法运算符用于减法运算,使其左侧的数值减去右侧的数值。
加法运算符和减法运算符都属于“二元运算符”,因为这些运算符都需要两个运算对象才能完成操作。

符号运算符:-和+

用于标明或者改变一个值的代数符号。因为只需要一个运算对象,所以称为“一元运算符”。
需要注意的是+为C90标准新增。之前是会报错。
例如:

1
2
3
4
5
6
7
8
#include <stdio.h>

int main(void){
int a = -1;
int b = -a;
printf("%d\n%d\n", a, b);
return 0;
}

乘法运算符:*

C使用*来表示乘法,使其左侧的数值乘以右侧的数值。

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main(void){
int a = 2;
int b = 2;
int c = a * b;
printf("%d\n%d\n%d\n", a , b, c);
return 0;
}

除法运算符:/

C使用/来表示除法,使其左侧的数值除以右侧的数值。左侧的值是被除数,右侧的值是除数。

整数除法和浮点数除法不同,浮点数除法的结果是浮点数,整数除法的结果是整数。整数是没有小数部分的数,例如5除以3,小数点后剩余的部分就会被截断。并不会四舍五入。

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main(void){
int a = 2;
int b = 2;
int c = a / b;
printf("%d\n%d\n%d\n", a , b, c);
return 0;
}

运算符优先级。

  • () 从左往右
  • + -(一元) 从右往左
  • * / 从左往右
  • + -(二元) 从左往右
  • = 从右往左