• c语言操作符(超详解)



    在这里插入图片描述

    一.算术操作符+ - / % *(乘号)

    在这里插入图片描述

    二.移位操作符 << >>

    1.右移操作符

    移位操作符只能作用于整数,且操作的是补码,右移分为算术右移和逻辑右移(具体看编译器)

    算术右移(vs是这种):右边丢弃,左边补原来的符号位
    在这里插入图片描述

    在这里插入图片描述
    逻辑右移:右边丢弃,左边补0
    在这里插入图片描述

    在这里插入图片描述

    2.左移操作符

    左边丢弃,右边补0

    在这里插入图片描述

    在这里插入图片描述

    三.位操作符 & | ^

    在这里插入图片描述

    1.&

    权重是0,有0便为0,无0便为1

    在这里插入图片描述

    2. |

    权重是1,有1便是1,无1便是0

    在这里插入图片描述

    3. ^

    相同为0,相异为1

    在这里插入图片描述

    四.复合操作符

    在这里插入图片描述

    相信这些大家一看就知道怎么用啦

    五.单目操作符 ! - + & sizeof ~ – ++ *(解引用)

    在这里插入图片描述

    1. !(逻辑反操作符)

    如果是真加上它就是假,如果是假加上它就是真

    非0为真,!非0为假
    在这里插入图片描述

    2.补充(布尔类型)

    布尔类型只有两种状态 真和假
    布尔类型只占一个类型

    在这里插入图片描述

    在这里插入图片描述

    3.sizeof(以字节为单位)

    一个int 是4个字节,一个char是1个字节

    在这里插入图片描述

    我们常用sizeof来计算数组大小

    在这里插入图片描述

    这里用sizeof(arr)计算出数组内所有字节的多少,再除以首元素的字节大小,就可以算出有多少元素

    补充sizeof内部是不进行运算的

    在这里插入图片描述

    这里s依然是5,并没有改变,同时sizeof计算的是s的大小,short类型两个字节

    4. ~ (按位取反)

    都只能作用于整数,操作补码0变为1,1变为0,注意所有位都要参与

    在这里插入图片描述

    5.++ – (前置和后置)

    1.例如a++就是a=a+1,同理a–就是a=a-1。
    2.注意这里是分为前置和后置的,++a和a++

    其实这两种写法最主要的区别就是运算顺序不同,前置运算顺序高,后置运算顺序较低

    在这里插入图片描述

    也就是a先将值3赋给b,再++改变a的值为4

    在这里插入图片描述

    也就是a先++变为4,再将4给b

    同样 - -也同理

    6. *

    如果说pa是a的地址,那么 * (pa)就是这个地址里放的内容,其实就是a

    六.关系操作符

    在这里插入图片描述

    七.逻辑操作符 && ||

    在这里插入图片描述

    1.逻辑于 &&

    其实就是并且的意思,两者都满足才为真

    在这里插入图片描述
    在这里插入图片描述

    2.逻辑或 ||

    其实就是或者的意思,只要有一个满足就为真

    在这里插入图片描述
    在这里插入图片描述
    ——————以下是一些拓展——————

    在这里插入图片描述

    这是怎么得出来的呢?接下来挨个分析

    首先我们进入判断式,从左向右看,第一个是a++,这是一个后置++,所以先使用再赋值,也就是刚进入判断式时a=0,那么计算机就知道这个判断式肯定为假,那么计算机就不会往后计算,直接跳到下一步(printf),这时b和c都不会改变,而a在使用完后++变为1,同时i就得到返回值0(为假就返回0)

    在这里插入图片描述

    还是一样,首先进入判断式,第一个a=0,那么此时计算机还不能判断这个判断式的真假,所以向右计算,b=1,好了这下计算机知道这个判断式肯定为真,所以不再向下计算,所以c的值不会改变,同时b,c分别++变为1和2,i得到返回值1(非0表示真,但我们规定如果为真计算机就返回1)

    八.三目操作符 a?b:c

    在这里插入图片描述

    如果a表达式为真,那么就进入b,否则进入c

    在这里插入图片描述
    以上式子完全等价于以下的

    在这里插入图片描述

    九.逗号表达式

    在这里插入图片描述
    在这里插入图片描述

    逗号表达式是从左至右计算,但最终的值是最后一个

    分析:首先进入a>b,这是个无效式子并未得出什么结果。接着进入a=b+10,计算得a=12。然后进入a,也是无效。最后进入b=a+1,得出b=13,并把值赋给c,最终打印出来

    十.整形提升

    这个较为复杂,我将它放在了另一篇博客中 整形提升

    十一.运算符运算顺序

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    (CVPR-2019)选择性的内核网络
    Rabin-Karp字符串哈希算法
    什么人群适合考PMP?
    GBase 8a存储过程和函数
    Kubernetes 部署 kubeflow1.6.1
    ChatGPT在测试计划中的应用策略
    CompTIA美国计算机协会的热门认证一览
    计算机网络学习笔记(3.数据链路层 4.网络层)
    护士人文修养
    创建定时任务——crontab的使用
  • 原文地址:https://blog.csdn.net/m0_73790767/article/details/127836866