2.c语言运算符

1.算术运算符:

+ 加法 , 一目取整

- 减法, 一目 取负 -a

* 乘法

/ 除法

% 取模、求余 a%b a 和b 必须是整型

++ 自加 1 a++ / ++a

-- 自减 1

   int a = 5  ,  b = 4 ;    

    printf("a++:%d \n " , a++ ); // 后缀加加   先取值 在自加   5
    printf("a:%d \n " , a );        // 6 

    printf("++b:%d \n " , ++b ); // 前缀++    先自加 再取值   5
    printf("b:%d \n " , b );        // 5  

2.关系运算符

> 大于 判断a是否大于 b a > b

< 小于 判断a是否大小于 b a > b

>= 大于等于 判断a是否大于或者等于 b a >= b

== 恒等于 (等于) 判断a是否等于 b a == b

!= 不等于 判断a是否不等于 b a != b

注意:

  • 关系运算符用于判断表达式是否满足给定的大小条件。
  • 关系运算符组成的表示是是关系表达式 ,他的值为 布尔值 (真/假)
  • 注意== 不是= 不要搞错了

3.逻辑运算符

! 逻辑反 将逻辑真变假 ..... 真假交换

&& 逻辑与 可以将两个关系表达式 链接起来, 当左右两边的表达式都为真则表示真

|| 逻辑或 可以将两个关系表达式 链接起来, 当表达式其中一个为真则整个表达式为真

注意:

  • &&逻辑与运算中如果左边表达式为假, 右边不会别运算
int a = 3 , b = 9 ;
if ( a > b && ++a )  ; 问a的值是多少?
  • || 逻辑或运算的过程中如果左边表达式为真, 右边将不被运算
int a = 3 , b = 9 ;
if ( a < b || ++a )  ; 问a的值是多少?
  • 注意==恒等于的小心思, 不要写少了, 建议把 左值 写成常量
 // if ( a = 99 )  // 编译器表示没问题, 但是逻辑判断为真
 // if ( 99 = a ) // 编译器直接报错 , 程序无法编译避免了一个秃头的机会

    if (a = b)   //非零则真
    {
        printf("a等于B\n");
    }
    else 
    {
         printf("a不等于B\n");
    }

4.位运算符

~ 位逻辑反 ~a 把a的二进制位每一个都取反 (1变0 / 0变1 )

& 位逻辑与 a&b 将a和b 的每一位进行位与操作

| 位逻辑或 a|b 将a和b 的每一位进行位或操作

^ 位逻辑异或 a^b 将a和b 的每一位进行位异或操作

>> 右移 a>>4 将a二进制位向右边移动 4位

5.特殊运算符

  • 赋值运算符
    • 不可以对常量进行赋值
    • 不可以对数组赋值
    • 可以连续赋值 , 顺序是从右往左
int  a  , b ;
int arr[10] ;

a = 100  ;  //把100赋值给a
b = a  ;   // 把a 的值赋值给 b
arr = 199 ; // 不可以对数组赋值

//连续赋值
a = b = 100 ; // 先把100赋值给 b  然后在把 b 赋值给a
  • 复合运算符
    • 当左右两边有相同的操作数时 , 使用符合运算符可以更加直观,快捷
    • 符合运算符不可以凭空捏造, 只有10 种:
a += b ;   // 等价于  a =  a + b ;
a -= b ;   // 等价于  a =  a - b ;
a *= b ;
a /= b ;

a %= b ;  // 等价于   a  = a % b ;

a &= b  ; // 等价于   a = a & b ;
a |= b ;
a ^= b ;
a >>= b ;
a << = b ;
  • 条件运算符 (三目运算符)
    • 唯一一个拥有三个操作数的运算符
    • 语法: 表达式1 ? 表达式2 : 表达式3
    • 解析: 判断表达式1 是否为真 ? 如果是 取 表达式2的值 否则取表达式3
int   a = 100 ;
int   b = 200 ;

int max = (a>b) ?  a : b ; // 如果a>b则取a  反之取b 
 
 // printf 会返回具体的输出字节数
int ret_val = a<b ? printf("GC2075\n") : printf("Even\n") ;
printf("%d\n" , ret_val);
  • sizeof 运算符
    • 用来计算数据类型或变量所占的内存空间大小(字节数)
    • 语法: sizeof(类型) / sizeof(变量) , 如果计算的是变量 括号可以省略
     int a  = 1 , b = 99 ;

    printf("int:%ld\n" , sizeof(int));
    printf("a:%ld\n" , sizeof(a));
    printf("b:%ld\n" , sizeof b );
  • return 运算符
    • 含义: 用来退出某个函数(主函数:直接退出程序。 子函数:退出子函数。)
    • 语法要求:必须写在函数体内{ } , 可以携带函数的返回值

6.优先级

$ man operator 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值