关于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日

相关文章

  • JavaScript中的JSON 中文版翻译

    下面是关于“JavaScript中的JSON 中文版翻译”的完整攻略。 什么是JSON? JSON,全称为JavaScript Object Notation,即JavaScript对象表示法,是一种轻量级的数据传输格式。它以键值对的形式存储数据,非常适合用于Web应用中的数据交互和传输。 JSON数据的基本格式 JSON数据的基本格式是一个键值对,键名必须…

    C 2023年5月23日
    00
  • C语言实现猜数游戏

    C语言实现猜数游戏攻略 一、简介 C语言实现猜数游戏是一种比较简单的小项目,它可以帮助初学C语言的程序员更好地理解C语言的基本语法,提升程序设计能力。本攻略将介绍实现猜数游戏的完整过程,并提供两个示例。 二、游戏规则 猜数游戏的规则非常简单,程序先生成一个1~100之间的随机整数,玩家需要在规定的次数内猜出这个数字。每次猜数后,程序会根据玩家的猜测结果给出提…

    C 2023年5月23日
    00
  • C语言菜鸟基础教程之Hello World

    C语言菜鸟基础教程之Hello World 什么是C语言? C语言是一种通用的高级程序设计语言,它能够方便地对计算机进行底层操作,如硬件控制和内存访问等。同时由于其简洁、高效和强大的特性,C语言在操作系统、编译器、游戏开发等领域得到了广泛的应用。 Hello World实例 下面以经典的Hello World程序为例,让我们一步步地学习如何使用C语言进行编程…

    C 2023年5月23日
    00
  • C语言和go语言之间的交互操作方法

    C语言和Go语言是两种不同的编程语言,它们在程序的实现上也存在一些差异。但是,由于它们在不同的应用场景下产生了巨大的价值,所以在很多时候是需要将这两种语言进行交互的。那么,如何实现C语言和Go语言的交互呢?下面是一个完整的攻略。 一、Go与C交互的基本方法 Go和C使用的是不同的编译器和标准库,因此它们之间的交互需要一些特殊的技巧。 首先,我们需要了解在Go…

    C 2023年5月23日
    00
  • C语言实现通讯录系统课程设计

    C语言实现通讯录系统课程设计 本次课程设计旨在通过实现一个简单的通讯录系统,帮助初学者巩固C语言基础知识,并初步了解数据结构相关操作和应用。 基本功能 通讯录系统主要包含以下功能: 添加联系人 删除联系人 修改联系人信息 查找联系人 显示所有联系人信息 清空联系人 设计思路 通讯录系统主要使用链表数据结构作为存储方式,并且通过读写文件将链表数据结构永久保存到…

    C 2023年5月23日
    00
  • Qt使用流处理XML文件的示例代码

    下面我将详细讲解Qt如何使用流处理XML文件。 步骤一:设置XML文件 在使用Qt流处理XML文件之前,首先需要构造XML文件。 我们可以使用Qt提供的QFile类来将XML文件写入磁盘中。例如: QFile file("test.xml"); // 文件名 if(!file.open(QIODevice::WriteOnly | QIO…

    C 2023年5月22日
    00
  • 基于C语言实现随机点名器(附源码)

    基于C语言实现随机点名器(附源码)攻略 背景 在日常教学过程中,老师需要选择学生进行点名,但是传统的手工点名有些麻烦,而电子化的随机点名器则可以快速、方便地进行点名,提高了点名的效率。 组件 点名器的组成部分为三个部分:1. 学生名单(可采用文本文件实现存储);2. 随机数生成器(用于随机产生学生编号);3. 点名器(根据随机数生成器产生的随机数来选出学生进…

    C 2023年5月23日
    00
  • C++四种case的详细介绍小结

    C++四种case的详细介绍小结 在C++中,switch语句可以使用四种语句类型,用于匹配不同的情况(case)。这四种语句类型是: case表达式常量 case枚举常量 case constexpr函数 不带表达式的case 下面我们来一一介绍。 1. case表达式常量 这种情况下,case后面直接跟一个常量表达式,如下所示: switch (n) {…

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