关于C语言操作符的那些事(超级全)

关于C语言操作符的那些事(超级全)

前言

C语言中操作符是非常重要的一部分,了解操作符的含义和使用方法可以帮助我们更好地理解和编写C语言程序。本文将介绍常见的C语言操作符,分为算术操作符、关系操作符、逻辑操作符、位操作符、赋值操作符、条件操作符和其他操作符七类。

算术操作符

算术操作符用于执行算术计算,包括加、减、乘、除、取模等。

  • 加号 +:用于加法运算
  • 减号 -:用于减法运算
  • 乘号 *:用于乘法运算
  • 除号 /:用于除法运算
  • 取模 %:用于求余数

C语言中的算术运算符具有优先级,可以使用圆括号改变优先级,例如:

int a = 2, b = 3, c = 4;
int res = (a + b) * c / 2;  // res的结果为10

关系操作符

关系操作符用于比较两个值的大小关系,返回布尔值(0或1)。

  • 相等 ==:用于比较两个值是否相等
  • 不等 !=:用于比较两个值是否不相等
  • 大于 >:用于比较左侧的值是否大于右侧的值
  • 小于 <:用于比较左侧的值是否小于右侧的值
  • 大于等于 >=:用于比较左侧的值是否大于等于右侧的值
  • 小于等于 <=:用于比较左侧的值是否小于等于右侧的值

例如:

int a = 2, b = 3;
int res = (a > b);  // res的结果为0

逻辑操作符

逻辑操作符用于连接两个布尔表达式,返回布尔值。

  • &&:当左右两个表达式都为真(非0)时返回1,否则返回0
  • ||:当左右两个表达式有一个为真(非0)时返回1,否则返回0
  • !:用于取反,当表达式为真时取反为假,为假时取反为真

例如:

int a = 2, b = 3;
int res = (a > 1 && b > 1);  // res的结果为1

位操作符

位操作符用于操作二进制数的每一位。

  • 按位与 &:当两个二进制位都为1时返回1,否则返回0
  • 按位或 |:当两个二进制位有一个为1时返回1,否则返回0
  • 按位异或 ^:当两个二进制位不同时返回1,否则返回0
  • 按位取反 ~:对每一个二进制位取反,0变为1,1变为0
  • 左移 <<:将左侧操作数的二进制数向左移动(低位补0),右侧操作数指定移动的位置
  • 右移 >>:将左侧操作数的二进制数向右移动(高位补0或1),右侧操作数指定移动的位置

例如:

unsigned int a = 0x18, b = 0x0F;
unsigned int res = a & b;  // res的结果为0x08

赋值操作符

赋值操作符用于将右侧的值赋给左侧的变量或内存单元。

  • =:将右侧的值赋给左侧的变量或内存单元
  • +=:将左侧的值加上右侧的值并赋给左侧的变量或内存单元
  • -=:将左侧的值减去右侧的值并赋给左侧的变量或内存单元
  • *=:将左侧的值乘上右侧的值并赋给左侧的变量或内存单元
  • /=:将左侧的值除以右侧的值并赋给左侧的变量或内存单元
  • %=:将左侧的值取模右侧的值并赋给左侧的变量或内存单元
  • <<=:将左侧的值左移右侧的位数并赋给左侧的变量或内存单元
  • >>=:将左侧的值右移右侧的位数并赋给左侧的变量或内存单元
  • &=:将左侧的值按位与右侧的值并赋给左侧的变量或内存单元
  • |=:将左侧的值按位或右侧的值并赋给左侧的变量或内存单元
  • ^=:将左侧的值按位异或右侧的值并赋给左侧的变量或内存单元

例如:

int a = 2, b = 3;
a += b;  // a的值为5

条件操作符

条件操作符用于根据条件选择不同的操作,也叫三目操作符。

  • expr1 ? expr2 : expr3:如果expr1为真(非0),返回expr2的值,否则返回expr3的值

例如:

int a = 2, b = 3;
int res = (a > b) ? a : b;  // res的值为3

其他操作符

除了以上的操作符,C语言还有其他一些常用的操作符。

  • &:取变量的地址
  • *:从地址中取出值,或者用来定义指针变量
  • sizeof:返回变量或类型的字节数
  • ++:自增,可以在前后两种位置使用
  • --:自减,可以在前后两种位置使用

例如:

int a = 2;
int *p = &a;  // 定义指向a的指针
int res = ++(*p);  // res的值为3,a的值也为3

总结

以上就是C语言操作符的主要内容,操作符在C语言编程中占据着重要位置,掌握对应的操作符可以帮助我们更好地编写高效、简洁、清晰的代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于C语言操作符的那些事(超级全) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C 程序 使用指针交换两个数字

    很好,C 程序使用指针交换两个数字的完整使用攻略如下: 1. 准备工作 在开始编写 C 程序之前,你需要确保已经安装好了 C 语言编译器。如果还没有安装,可以先安装 GCC 编译器,具体可以参考网上相关教程进行安装。 2. 编写代码 下面是一个简单的 C 程序,用于交换两个数字: #include <stdio.h> void swap(int …

    C 2023年5月9日
    00
  • 替换json对象中的key最佳方案

    为了替换JSON对象中的key,我们可以尝试使用以下方法: 遍历对象并创建新的对象 我们可以遍历JSON对象,对每个键值对进行检查,然后创建一个新的对象来替换旧的对象中的Key。例如在JavaScript中: const oldObj = {"oldKey": "value"}; const newObj = {}; …

    C 2023年5月23日
    00
  • C++详细讲解互斥量与lock_guard类模板及死锁

    C++详细讲解互斥量与lock_guard类模板及死锁攻略 什么是互斥量? 互斥量(Mutex)是一种基本的同步原语,用于保护共享资源的访问并防止竞争条件。它允许多个线程共享同一个互斥量变量,并且同一时间只有一个线程能够拥有此变量,其他线程在等待时被阻塞。当一个线程拥有互斥量时,它可以访问被保护的资源,当它释放互斥量时,其他线程可以获取互斥量并访问资源。 互…

    C 2023年5月23日
    00
  • 解析C/C++中如何终止线程的运行

    解析C/C++中如何终止线程的运行 在C/C++中实现终止线程的运行涉及到线程的控制、同步及中断等方面。以下是终止线程的运行的完整攻略: 用共享变量来控制线程的运行 在线程运行期间,可以设置共享变量,利用共享变量来控制线程的运行。例如,将共享变量设置成一个flag,当flag=0时,线程继续运行;当flag=1时,线程退出。 示例1: #include &l…

    C 2023年5月23日
    00
  • C和C++的区别详解

    C和C++的区别详解 C和C++是两种非常常见的编程语言,在很多领域都有广泛的应用。虽然在某些方面它们很相似,但在许多方面它们也存在很大的差异。下面我们将详细说明C和C++之间的区别。 1. 语言的起源和发展历史 C语言是由Dennis Ritchie在20世纪70年代初创造的,最初是为了在Unix操作系统上编写系统级应用程序而设计的。C++语言则是由Bja…

    C 2023年5月22日
    00
  • c语言实现系统时间校正工具代码分享

    C语言实现系统时间校正工具代码分享 简介 本篇攻略将会介绍如何使用C语言实现一个系统时间校正工具。通过在代码中调用系统API和获取网络时间,来实现校准本地系统时间的功能,帮助用户更准确地记录时间,提高使用效率。 实现步骤 步骤一:引入头文件 首先,为了实现获取系统时间以及联网获取时间的功能,需要引入系统头文件time.h,以及获取网络时间需要用到的winso…

    C 2023年5月22日
    00
  • 使用emacs编写C语言教程

    使用emacs编写C语言教程的完整攻略包含以下步骤: 安装emacs 首先需要安装emacs,可以参考本网站的Emacs教程进行安装。 配置C语言环境 安装好emacs后,需要配置C语言环境。可以使用MELPA进行安装irony-mode,该模式可以提供C语言的代码补全、语法检测等功能。 具体安装步骤如下: 打开emacs,使用M-x package-ins…

    C 2023年5月23日
    00
  • 一篇文章带你入门C语言:函数

    一篇文章带你入门C语言: 函数 函数的定义 函数是 C 语言中组织代码的一种主要方式。在 C 中,函数是由一系列语句组成的代码块,这些语句被命名并可以通过一个函数名来调用。 返回类型 函数名(参数列表) { // 函数体 } 返回类型:函数执行后返回的数据类型,例如 int、float 等。 函数名:函数的名称,可以根据函数的功能进行命名。 参数列表:函数执…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部