【C语言】C语言中基础操作符详细讲解

article/2025/10/2 6:21:30

接着上次的C语言基础知识梳理,让我们来简单了解一下C语言里的操作符


目录

整数的二进制表示形式

算术操作符

移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑运算符

条件操作符-三目操作符

下标引用、函数调用、结构成员访问操作符

隐式类型转换(整型提升)

算术转换

总结


  • 整数的二进制表示形式

    1. 针对负数
      1. 原码:直接根据数值写出的二进制序列就是原码 。
      2. 反码:原码 的符号位不变 ,其他位按位取反,就是反码。
      3. 补码:反码加1,就是补码。
    2. 针对正整数:原码反码补码相同

  • 算术操作符

    1. /

                        6/5为整除,结果是 1;

                        6.0/5.0结果为1.2,是double类型;

                    2.%

                        取模:算的是余数,取模的数必须是整数


  • 移位操作符

    1. 'a<<1':把a的二进制位向移动一位(不可负号)

                        Int a=2;一个整体字符是4个字节,32个比特位

                    2. 右移

                        右移操作符使用的是算术右移。

                        算数右移:右边丢弃,左边补原符号位。(0正,1负)

                        逻辑右移:右边丢弃,左边补0


  1. 位操作符

    1. &按位与
      1. 按(二进制)位与(只有两个均为真,才为真)
    2. ‘|’ 按位或
      1. 二者有一为真,则为真
    3. ^按位异或

  • 赋值操作符

    1. 直接赋值
      1. =
    2. 复合赋值
      1. +=
        1. a=a+100==a+=100
      2. -=
      3. /=
      4. >>=
        1. a=a>>3/a>>=3
      5. <<=
      6. %=
      7. |=
      8. %=

  • 单目操作符

    1. !—逻辑取反
      1. If(!flag):如果flag为假,进入If语句 
    2. -   负值
    3. &   —取地址
    4. Sizeof—操作数的类型长度(以字节为单位)
      1. sizeof括号中放的表达式,是不参与运算的
      2. short:2字节;int:4字节。
    5. ~
      1. 对一个数的二进制位补码按位取反
    6. ++
      1. 前置++:先++再使用
      2. 后置++:先使用后++
    7. --
    8. *
      1. 解引用操作符-间接访问操作符
    9. 强制转换(类型)
      1. Int a =(int)3.14

  • 关系操作符

    1. 比较两个字符串是否相等,不能使用等号来判断。

  • 逻辑运算符

    1. 要构成逻辑表达式,需要使用逻辑运算符。

                        若a为真,则a为假;若a为假,则a

                        显然,逻辑运算的结果仍然是逻辑值

                        只要a、b至少一个为真,a||b就为真

                   2.逻辑非

                        只有a、b均为真,a&&b的结果才为真

                   3.逻辑或||

                        C语言中有三种逻辑运算符

                   4.逻辑与&&

                        只有a、b均为真,a&&b的结果才为真


  • 条件操作符-三目操作符

        1.b=(a>5?1;-1);

        a大于5吗?,如果大于,b等于1,如果不大于,b=-1        

        2.逗号表达式 


  • 下标引用、函数调用、结构成员访问操作符

  1. 下标引用
    1. Printf("%d\n",arr[4])[]—下标引用操作符

                arr和 4是操作数

     2.函数调用

              1.Menu()];其中的()是函数调用操作符

     3.结构成员访问操作符

  1. ‘.’点操作符

用“.”可以调出结构体内的成员。‘结构体名‘“.”'成员名'

2.‘->’箭头操作符

Pb->name代表pb指向的对象的name


  • 隐式类型转换(整型提升)

    1. C的 整形算术运算总是至少以缺省整型类型的精度来进行
    2. 为了获得这个精度,表达式中的字符和短整型操作数 在使用之前被转换为普通整形,这种转换称为整型提升
    3. 整型提升 有符号的数补符号位  ,无符号的数补0
    4. 整型提升

  • 算术转换

如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型(从低向高转换),否则操作就无法进行。下面的层次体系称为寻常算术转换。(从低到高转换)


总结

        如果你读到了这里,非常感谢你能看完的文章,谢谢!!!!

        如果你觉得你有些想法和我一样,想和我一起提升自己可以关注私信我,与我一起进步,一起共同努力!!!!!



http://chatgpt.dhexx.cn/article/XubNoXXF.shtml

相关文章

代理模式的理解?代理模式的应用场景?

说说你对代理模式的理解&#xff1f;应用场景&#xff1f; 一、是什么 代理模式&#xff08;Proxy Pattern&#xff09;是为一个对象提供一个代用品或占位符&#xff0c;以便控制对它的访问 代理模式的关键是&#xff0c;当客户不方便直接访问一个对象或者不满足需要时&…

设计模式 —— 代理模式

目录 一、代理模式的基本介绍 二、静态代理 三、动态代理 3.1 动态代理模式的基本介绍 四、Cglib 代理 4.1 Cglib 代理模式的基本介绍 五、几种常见的代理模式介绍— 几种变体 一、代理模式的基本介绍 代理模式&#xff1a;为一个对象提供一个替身&#xff0c;以控制对…

Spring:代理模式

一、概述 代理模式分为静态代理以及动态代理&#xff0c;属于23中设计模式之一。动态代理是SpringAop的底层。代理的概念如下图所示&#xff1a; 二、 静态代理 上图角色分析&#xff1a; 抽象角色&#xff1a;一般会使用接口或者抽象类来解决真是角色&#xff1a;被代理的角色…

什么是代理模式,如何写一个代理模式

什么是代理模式 代理模式分为静态代理模式&#xff0c;和动态代理模式&#xff0c;代理模式就是创建一个代理对象&#xff0c;由代理对象来接管原对象的引用,静态代理模式需要让代理类和被代理的类实现同一个接口&#xff0c;通过代理类中定义的构造方法将被代理的对象作为参数…

代理模式(Proxy)

代理模式介绍 代理模式:为一个对象提供一个替身&#xff0c;以控制对这个对象的访问。即通过代理对象访问目标对象好处是:可以在目标对象实现的基础上,增强额外的功能操作&#xff0c;即扩展目标对象的功能被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代…

代理 模式

代理模式 Proxy Pattern 为其他对象提供一个代理以控制对这个对象的访问 可以详细控制访问某个&#xff08;某类&#xff09;对象的方法&#xff0c;在调用这个方法前做前置处理&#xff0c;调用这个方法后做后置处理。 静态代理 直接写死的代码的代理逻辑 动态代理 动态…

代理模式例子

1.概念 代理模式就是为某个对象提供一种代理&#xff0c;以控制对这个对象的访问。 2.涉及角色 抽象角色&#xff1a;声明真实对象和代理对象的共同接口&#xff1b; 代理角色&#xff1a;代理对象角色内部含有对真实对象的引用&#xff0c;从而可以操作真实对象&#xff…

代理模式的使用

一.代理模式 代理模式是java常用的设计模式。 代理的定义&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。 简单点说就是代理对象与实际对象都实现了相同的接口&#xff0c;我们可以通过代理对象来间接的访问实际对象&#xff0c;也因为这种间接性&#xff0c;我…

C++之代理模式

目录 模式思想 简介 组成 优点 代码实现 情景 如果不使用代理的话&#xff1a; 加代理的话&#xff1a; 结果 模式思想 简介 代理模式&#xff1a; 通过代理类&#xff0c;来控制实际对象的访问权限。 在某些情况下&#xff0c;一个对象不适合或者不能直接引用另…

代理模式与动态代理模式

原文地址&#xff1a;点击打开链接 1、代理模式 所谓代理&#xff0c;就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下&#xff0c;一个客户不想或者不能够直接引用一个对象&#xff0c;而代理对象可以在客户端和目标对象之前起到中介的作用。 代理模…

设计模式之代理模式(C++)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 一、代理模式是什么&#xff1f; 代理模式是一种结构型的软件设计模式&#xff0c;在不改变原代码前提下&#xff0c;提供一个代理…

动态代理模式详解

目录 &#xff08;一&#xff09;什么是动态代理模式 &#xff08;二&#xff09;动态代理模式入门案例 1.完成一个账户转账的功能 2. v1.0版本为转账添加一个事务 3.v2.0将事务从业务层和从持久层剥离 4.v3.0将事务使用动态代理完成 5.v3.0通过cglib实现代理模式 &…

三种代理模式详解

文章目录 二、代理模式&#xff08;Proxy Pattern&#xff09;1、常见的几种代理模式&#xff1a;2、静态代理3、JDK动态代理4、CGLib代理5、CGLib和JDK动态代理的区别 二、代理模式&#xff08;Proxy Pattern&#xff09; 根据B站狂神视频整理&#xff1a;https://www.bilibil…

Spring的代理模式

1、代理模式 为什么要学习代理模式&#xff1f; 因为这就是springAOP的底层&#xff01;【springAOP和springMVC】 代理模式的分类&#xff1a; 静态代理动态代理 1.1、静态代理 角色分析&#xff1a; 抽象角色&#xff1a;一般会使用接口或者抽象类来解决真实角色&…

代理模式(Proxy模式)详解

在有些情况下&#xff0c;一个客户不能或者不想直接访问另一个对象&#xff0c;这时需要找一个中介帮忙完成某项任务&#xff0c;这个中介就是代理对象。例如&#xff0c;购买火车票不一定要去火车站买&#xff0c;可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保…

代理模式的详细介绍

国庆期间闲来无事&#xff0c;写了一个简单的小程序&#xff0c;小程序名称叫做 IT藏经楼。目的是分享这些年自己积累的一些学习材料&#xff0c;方面大家查找使用&#xff0c;包括电子书、案例项目、学习视频、面试题和一些PPT模板。里面所有材料都免费分享。目前小程序中只发…

代理模式

代理模式 代理模式应用场景模式结构实现方式 代理模式 控制着对于原对象的访问&#xff0c; 并允许在将请求提交给对象前后进行一些处理。 优点&#xff1a; 在客户端与目标对象之间起到一个中介作用和保护目标对象的作用&#xff1b;代理对象可以扩展目标对象的功能&#x…

代理模式详解

1. 代理模式 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问&#xff0c;这样就可以在不修改原目标对象的前提下&#xff0c;提供额外的功能操作&#xff0c;扩展目标对象的功能。 代理模式一半包含三种角色&#x…

代理模式详细讲解

文章目录 一、什么是代理模式&#xff1f;二、 为什么使用代理模式&#xff1f;三、 代理模式的实现1、静态代理1.1、 创建公共的接口1.2、 创建被代理角色1.3、 创建代理角色1.4、 创建测试类 2、动态代理的实现2.1、 使用 JDK 的 Proxy 类实现动态代理1、 创建业务接口2、 创…

一文搞懂代理模式

代理模式 前言一、代理模式是什么&#xff1f;二、静态代理三、动态代理1.jdk动态代理&#xff08;接口代理&#xff09;2.cglib动态代理 前言 一、代理模式是什么&#xff1f; 代理模式是常见的设计模式之一&#xff0c;顾名思义&#xff0c;代理模式就是代理对象具备真实对象…