C语言4 运算符

news2024/10/6 7:35:17

目录

1. 算术运算符

2. 关系运算符

3. 逻辑运算符

4. 位运算符

5. 赋值运算符

6. 自增和自减运算符

7. 条件运算符(三元运算符)

8. 逗号运算符

9. sizeof 运算符

10. 取地址和解引用运算符

11.运算符的优先级


1. 算术运算符

`+` (加法):将两个数相加。
`-` (减法):将第一个数减去第二个数。
`*` (乘法):将两个数相乘。
`/` (除法):将第一个数除以第二个数,注意在整型除法中结果也是整型(小数部分被舍弃)。
`%` (取模):返回两个数相除的余数,只能用于整数。

示例

int a = 10, b = 3;
int sum = a + b;      // sum = 13
int difference = a - b; // difference = 7
int product = a * b;    // product = 30
int quotient = a / b;   // quotient = 3
int remainder = a % b;  // remainder = 1

2. 关系运算符

`==` (等于):比较两个值是否相等。
`!=` (不等于):比较两个值是否不相等。
`>` (大于):检查第一个值是否大于第二个值。
`<` (小于):检查第一个值是否小于第二个值。
`>=` (大于等于):检查第一个值是否大于或等于第二个值。
`<=` (小于等于):检查第一个值是否小于或等于第二个值。
示例

int a = 10, b = 20;
int result;

result = (a == b);    // result = 0 (false)
result = (a != b);    // result = 1 (true)
result = (a > b);     // result = 0 (false)
result = (a < b);     // result = 1 (true)
result = (a >= b);    // result = 0 (false)
result = (a <= b);    // result = 1 (true)

3. 逻辑运算符

`&&` (逻辑与):如果两个操作数都为真,则条件为真。
`||` (逻辑或):如果两个操作数有一个为真,则条件为真。
`!` (逻辑非):反转操作数的逻辑状态。

示例

int a = 1, b = 0;
int result;

result = (a && b);    // result = 0 (false)
result = (a || b);    // result = 1 (true)
result = !a;          // result = 0 (false)

4. 位运算符

`&` (按位与):对两个数的每一位执行与操作。
`|` (按位或):对两个数的每一位执行或操作。
`^` (按位异或):对两个数的每一位执行异或操作。
`~` (按位取反):对数的每一位执行取反操作。
`<<` (左移):将一个数的所有位向左移动指定的位数。
`>>` (右移):将一个数的所有位向右移动指定的位数。

示例

int a = 5, b = 3;
int result;

result = a & b;   // result = 1 (0101 & 0011 = 0001)
result = a | b;   // result = 7 (0101 | 0011 = 0111)
result = a ^ b;   // result = 6 (0101 ^ 0011 = 0110)
result = ~a;      // result = -6 (~00000101 = 11111010)
result = a << 1;  // result = 10 (0101 << 1 = 1010)
result = a >> 1;  // result = 2 (0101 >> 1 = 0010)

5. 赋值运算符

`=` (赋值):将右边的值赋给左边的变量。
`+=` (加且赋值):将右边的值与左边的变量相加并赋值给左边的变量。
`-=` (减且赋值):将右边的值与左边的变量相减并赋值给左边的变量。
`*=` (乘且赋值):将右边的值与左边的变量相乘并赋值给左边的变量。
`/=` (除且赋值):将右边的值与左边的变量相除并赋值给左边的变量。
`%=` (取模且赋值):将右边的值与左边的变量取模并赋值给左边的变量。

示例

int a = 10;
a += 5;  // a = 15
a -= 3;  // a = 12
a *= 2;  // a = 24
a /= 4;  // a = 6
a %= 4;  // a = 2

6. 自增和自减运算符

`++` (自增):将操作数的值增加1。例如 `a++` 或 `++a`。
`--` (自减):将操作数的值减少1。例如 `a--` 或 `--a`。

 示例

int a = 5;
a++;  // a 现在是 6
++a;  // a 现在是 7
a--;  // a 现在是 6
--a;  // a 现在是 5

7. 条件运算符(三元运算符)

`?:` (条件运算符):根据条件表达式的真假值来选择执行两个表达式之一。

 示例

int a = 10, b = 20;
int result;

result = (a > b) ? a : b;  // result = 20

8. 逗号运算符

`,` (逗号运算符):按顺序执行一系列操作,并返回最后一个操作的值。

示例

int a = 1, b = 2, c;
c = (a += 1, b += 2, a + b);  // c = 6 (a=2, b=4)

9. sizeof 运算符

`sizeof`:返回变量或数据类型的大小(以字节为单位)。

示例

int a = 10;
printf("Size of a: %lu\n", sizeof(a));       // 输出变量 a 的大小
printf("Size of int: %lu\n", sizeof(int));   // 输出数据类型 int 的大小

10. 取地址和解引用运算符

 `&` (取地址):返回变量的地址。
 `*` (解引用):访问指针所指向的地址的值。

示例

int a = 10;
int *p;
p = &a;     // p 现在是变量 a 的地址
int b = *p; // b 现在是变量 a 的值,即 10

11.运算符的优先级

在C语言中,运算符的优先级决定了表达式中各个运算符操作的顺序。下面是常见运算符按优先级从高到低排列的列表:

1. 逗号运算符
2. 赋值运算符 (`=`, `+=`, `-=` 等)
3. 条件运算符 (`?:`)
4. 逻辑或运算符 (`||`)
5. 逻辑与运算符 (`&&`)
6. 按位或运算符 (`|`)
7. 按位异或运算符 (`^`)
8. 按位与运算符 (`&`)
9. 相等性和关系运算符 (`==`, `!=`, `<`, `>`, `<=`, `>=`)
10. 移位运算符 (`<<`, `>>`)
11. 加法和减法运算符 (`+`, `-`)
12. 乘法、除法和取模运算符 (`*`, `/`, `%`)
13. 一元运算符 (如 `++`, `--`, `!`, `~`, `+`, `-`)
14. 解引用和取地址运算符 (`*`, `&`)
15. sizeof运算符

优先级较高的运算符会先于优先级较低的运算符进行计算。在表达式中,可以使用圆括号 `()` 来改变运算符的计算顺序,圆括号中的表达式会先于外部的运算符进行计算。

例如,考虑以下表达式:

int a = 10, b = 5, c = 3;
int result = a + b * c;

根据运算符的优先级,乘法运算符 `*` 比加法运算符 `+` 的优先级高,因此先计算乘法,然后再进行加法运算。如果想先计算加法,可以使用圆括号来改变优先级:

int result = (a + b) * c;

这样就会先计算加法,然后再乘以 `c`。理解和正确利用运算符的优先级是编写正确和高效C语言程序的重要基础之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1905267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从一个(模型设计的)想法到完成模型验证的步骤

从有一个大型语言模型&#xff08;LLM&#xff09;设计的想法到完成该想法的验证&#xff0c;可以遵循以下实践步骤&#xff1a; 需求分析&#xff1a; 明确模型的目的和应用场景。确定所需的语言类型、模型大小和性能要求。分析目标用户群体和使用环境。 文献调研&#xff1a…

前端html面试常见问题

前端html面试常见问题 1. !DOCTYPE (文档类型)的作用2. meta标签3. 对 HTML 语义化 的理解&#xff1f;语义元素有哪些&#xff1f;语义化的优点4. HTML中 title 、alt 属性的区别5. src、href 、url 之间的区别6. script标签中的 async、defer 的区别7. 行内元素、块级元素、空…

运维系列.Nginx:自定义错误页面

运维系列 Nginx&#xff1a;自定义错误页面 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

mac|Mysql WorkBench 或终端 导入 .sql文件

选择Open SQL Script导入文件 在第一行加入use 你的schema名字&#xff0c;相当于选择了这个schema 点击运行即可将sql文件导入database 看到下面成功了即可 这时候可以看看左侧的目标database中有没有成功导入table&#xff0c;如果没有看到的话&#xff0c;可以点一下右上角的…

【算法笔记自学】第 8 章 提高篇(2)——搜索专题

8.1深度优先搜索&#xff08;DFS&#xff09; #include <cstdio>const int MAXN 5; int n, m, maze[MAXN][MAXN]; bool visited[MAXN][MAXN] {false}; int counter 0;const int MAXD 4; int dx[MAXD] {0, 0, 1, -1}; int dy[MAXD] {1, -1, 0, 0};bool isValid(int …

执行力不足是因为选择模糊

选择模糊&#xff1a;执行力不足的根源 选择模糊是指在面对多个选项时&#xff0c;缺乏明确的目标和方向。这种模糊感会导致犹豫不决&#xff0c;进而影响我们的执行力。 选择模糊的表现&#xff1a; 目标不明确&#xff0c;不知道应该做什么。优先级混乱&#xff0c;不清楚…

【持续集成_03课_Jenkins生成Allure报告及Sonar静态扫描】

1、 一、构建之后的配置 1、安装allure插件 安装好之后&#xff0c;可以在这里搜到已经安装的 2、配置allure的allure-commandline 正常配置&#xff0c;是要么在工具里配置&#xff0c;要么在系统里配置 allure-commandline是在工具里进行配置 两种方式进行配置 1&#xff…

人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系

人工智能&#xff08;Artificial Intelligence&#xff0c;缩写为AI&#xff09;--又称为机器智能&#xff0c;是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组成部分&#xff0c;它企图了解智能的实质…

[护网训练]原创应急响应靶机整理集合

前言 目前已经出了很多应急响应靶机了&#xff0c;有意愿的时间&#xff0c;或者正在准备国护的师傅&#xff0c;可以尝试着做一做已知的应急响应靶机。 关于后期&#xff1a; 后期的应急响应会偏向拓扑化&#xff0c;不再是单单一台机器&#xff0c;也会慢慢完善整体制度。…

基于Java的企业客户信息反馈平台

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; Java MySQL B/S架构 SpringBoot框架 工具&#xff1a; Eclipse、MySQL环境配置工具、浏览…

【每日一练】python算数练习题(函数.随机.判断综合运用)

""" 幼儿园加减法练习题 答对点赞表情&#xff0c;答错炸弹表情 表情随机出现 如果全答对有大奖 """ import random df0 #定义答对函数 def dd():global dfdf10bq["&#x1f339;&#x1f339;&#x1f339;","&#x1f389;&…

试用笔记之-汇通窗口颜色显示软件(颜色值可供Delphi编程用)

首先下载汇通窗口颜色显示软件 http://www.htsoft.com.cn/download/wdspy.rar 通过获得句柄颜色&#xff0c;显示Delphi颜色值和HTML颜色值

【74LS163做24进制计数器】2021-11-19

缘由用74LS163做24进制计数器-其他-CSDN问答,仿真multisim两个74LS163芯片如何构成47进制计数器-吐槽问答-CSDN问答 参考74ls163中文资料汇总&#xff08;74ls163引脚图及功能_内部结构图及应用电路&#xff09; - 电子发烧友网

weblogic加入第三方数据库代理驱动jar包(Oracle为例)

做的是国企项目&#xff0c;项目本身业务并不复杂&#xff0c;最复杂的却是服务器部署问题&#xff0c;对方给提供的服务器分内网、外网交换网&#xff0c;应用在交换网&#xff0c;数据库在内网&#xff0c;应用不能直接访问内网数据库&#xff0c;只能通过安全隔离网闸访问内…

electron 初始使用

electron electron文档地址deno下载地址安装命令 yarn config set electron_mirror https://cdn.npm.taobao.org/dist/electron/ npm install下载文件 文件下载完成后&#xff0c;新建dist目录&#xff0c;解压到list目录下&#xff1b;path文件中写入electron.exe 运行命令 …

【三级等保】等保整体建设方案(Word原件)

建设要点目录&#xff1a; 1、系统定级与安全域 2、实施方案设计 3、安全防护体系建设规划 软件全文档&#xff0c;全方案获取方式&#xff1a;本文末个人名片直接获取。

Python28-7.5 降维算法之t-分布邻域嵌入t-SNE

t-分布邻域嵌入&#xff08;t-distributed Stochastic Neighbor Embedding&#xff0c;t-SNE&#xff09;是一种用于数据降维和可视化的机器学习算法&#xff0c;尤其适用于高维数据的降维。t-SNE通过将高维数据嵌入到低维空间&#xff08;通常是二维或三维&#xff09;中&…

尚品汇-(十四)

&#xff08;1&#xff09;提交git 商品后台管理到此已经完成&#xff0c;我们可以把项目提交到公共的环境&#xff0c;原来使用svn&#xff0c;现在使用git 首先在本地创建ssh key&#xff1b; 命令&#xff1a;ssh-keygen -t rsa -C "your_emailyouremail.com" I…

按键控制LED流水灯模式定时器时钟

目录 1.定时器 2. STC89C52定时器资源 3.定时器框图 4. 定时器工作模式 5.中断系统 1&#xff09;介绍 2&#xff09;流程图&#xff1a;​编辑 3&#xff09;STC89C52中断资源 4&#xff09;定时器和中断系统 5&#xff09;定时器的相关寄存器 6.按键控制LED流水灯模…

三丰云评测:免费虚拟主机和免费云服务器体验

近年来&#xff0c;随着互联网的快速发展&#xff0c;越来越多的人开始关注云计算服务。在众多云计算服务提供商中&#xff0c;三丰云备受关注&#xff0c;其免费虚拟主机和免费云服务器服务备受赞誉。今天我们就来进行一次三丰云的评测。首先让我们来看看三丰云的免费虚拟主机…