第一阶段05 C语言运算符

加入CSDN是出于记录,希望有不足之处多加指正。

1、算术运算符

  1.  + 加法
    
  2.   - 减法
    
  3.  * 乘法
    
  4.  / 除法
    
  5. % 求余---(求余数注意运算符左右两边必须是整型)
    
  6. ++ 自加---(a++ , ++a 不仅可以操作整型还可以操作浮点、指针)
    
  7.  -- 自减
    

注意:
前缀++表示先加一运算,再进行表达式的运算
后缀++表示先进行表达式运算再进行加一


 int a = 2;
 printf("a++:%d \n",a++); //先输出2再加1变成3
 printf("a:%d \n",a);     //输出3

2、关系运算符

  1. > 大于
    
  2. < 小于
    
  3. >=大于等于
    
  4. <=小于等于
    
  5. ==等于
    
  6.  !=不等于
    

注意:
关系运算符用来判断运算符的两边是否满足给定的条件。
由于关系运算符组成的表达式时由一个值,这个值为布尔类型。
判断是否相等用 == 两个等号,并不是一个等号

100 == 200//表达式的值为假

3、逻辑运算符

  1.  ! 逻辑反(又称逻辑非)
    

!(100 == 200) ; //表达式的值为假 ,加上前面!表达式的值为真

  1. && 逻辑与
    

(a == b)&& (b == c) ; // &&符号左右两边都必须成立表达式才为真

  1. || 逻辑或

a > 10 || a < 5 ; // ||符号左右两边只要一个表达式为真则整个表达式为真

注意:
逻辑或运算中,如果表达式左边为真,则右边不被执行
逻辑与运算中,如果表达式的左边为假,则右边不被执行

if(100 > 200 && 300 + 400) //在该例子中,右边 300+400不会被执行

4、位运算符

int a = 100;  // 0110 0100
int b = 3 ;    // 0000 0011
  1. ~ 按位逻辑反(将A中的每一位进行取反)
    

~a ; // 1001 1011

  1. & 按位逻辑与 a&b(将a跟b进行逻辑与运算,有0得0)
    

a&b ; 0110 0100 & 0000 0011 = 0000 0000

  1. | 按位逻辑或(a | b将a跟b 进行逻辑或运算,有1得1)
    

a | b ; 0110 0100 | 0000 0011 = 0110 0111

  1. ^ 按位异或 (a^b 相同得0,不同得1)

a^b ; 0110 0100 ^0000 0011 = 0110 0111

  1. << 按位左移

0000 0000 0110 0100
0000 0110 0100 0000

6.>> 按位右移

5、特殊运算符

  1. 赋值运算符

1.不可以对常量进行赋值,只能对变量进行赋值
2.不能对数组进行赋值
3.连续赋值,从右向左赋值

int a = 100,b = 99;  //初始化
int x [10];
 a = 200; //将200赋值给a
 7 = a;   //等号左边不能赋值
 x = 190; //不可以对数组进行赋值

a = b = 99;//先将 99 赋值给b 再将b赋值给a,从右向左赋值
  1. 复合运算符

只有以下 10 种符合运算符:
1.a + = n; //等价于 a = a + n ,下同
2.a - = n;
3.a * = n;
4.a / = n;
5.a % = n;
6.a & = n;
7.a | = n;
8.a ^ = n;
9.a >> = n;
10.a << = n;
5/2=2,1/2=0


注意:
5/2.0=2, 1/2=0;
除号的正负取舍和一般的算数一样,符号相同为正,相异为负
-3/16=0; 16/-3=-5 ; -16/3=-5 ;

余%算法不能有小数点的浮点型
5%2=1,1%2=1
5%2.0和5.0%2 的结果是语法错误
求余符号的正负取舍和被除数符号相同
-3%16=-3 16%-3=1

  1. 条件运算符(三目运算符)

1.唯一一个需要三个操作数的运算符
2.语法: 表达式1 ?表达式2 ?表达式3
3,解析:表达式1是否为真,如果为真则取表达式2,否则取表达式3

int a = 10;
int b = 20;

int m = (a > n) ? a : n ; //由于a没有大于n,第一个表达式为假。
//所以整个表达式的值为冒号右边n
//m等于20
  1. sizeof 运算符

含义:用来计算一个数据类型的大小(所占的字节数)
语法:sizeof(类型) / sizeof(变量),计算变量的时候这个()可以省略 sizeof a;

pringf("int : %d \n" , sizeof(int));
int a = 10;
printf("a: %d \n", sizeof(a));
printf("a: %d \n", sizeof a);

int arr [10];
printf("a: %d \n", sizeof arr);
  1. return 运算符

含义:退出某个函数,(如果是主函数,遇到则会直接退出整个程序,如果是子函数,则会退出当前子函数)
语法:必须出现再函数体里面,可以携带函数所对应的返回值数据。

6、优先级与结核性

推荐使用()括号来强调优先级关系。

在这里插入图片描述

Guess you like

Origin blog.csdn.net/m0_61557794/article/details/121693059