C 语言基础----详解C中的运算符

2020-06-02 18:00:57于丽

C语言中又有哪些运算符呢?

如下所示:

※ 算术运算符

※ 赋值运算符

※ 关系运算符

※ 逻辑运算符

※ 三目运算符

C语言基本算术运算符如下表:

除法运算中注意:

如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如果两数中有一个为小数,结果则为小数。

取余运算中注意:

该运算只适合用两个整数进行取余运算
运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。
注:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。

赋值运算符

下表列出了 C 语言支持的赋值运算符:

运算符 描述 实例

= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C

+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A

-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A

= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C = A 相当于 C = C * A

/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A

%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A

<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2

>>= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2

&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2

^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2

|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2

自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。自增自减运算符有以下几种形式:

#include<stdio.h>
int main()
{
  int a = 100;
  printf("%dn",a++); /*a++意味着先将a的值也就是100给到printf,然后a自加1,于是a的值变成了101,这个101就成了下一行代码a的初始值了。*/
  printf("%dn",++a); /*++a意思是先将a的值加1(这行代码的a的初始值来自上一行的结果,所以a是101,自加1后就变成了102),将102这个值给到printf,所以第二行的结果输出是102.*/
  printf("%dn",--a); /*--a意思是先将a的值减1(这行代码a的初始值是102,减1后变成101),将101这个值给到输出。*/
  printf("%dn",a--); /*a--意思是将a这个值(即101)给到输出,然后将101自减1,得100.*/
  printf("%dn",a+1); //a的初始值100(来自上一行的结果),进行四则运算,+1得101.这里要注意!注意!进行四则运算并不改变a的值,也就是说下一行代码的a的初始值仍然是100,而非101.
  printf("%dn",a);//这里不用解释
  return 0;
}