news 2026/6/10 3:23:21

五、操作符(C语言)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
五、操作符(C语言)

1、算数操作符

(1)加+

(2)减-

(3)乘*

(4)除/

A 整数的除法

7/2

B 浮点型的除法

7.0/2 7/2.0 7.0/2.0

(5)取模%

int a = 7 % 2; //输出1 //%的前后必须为整数

2、移位操作符

移位操作符的操作数只能是整数。移位的是二进制数。

整数的二进制有三种:源码、补码、反码。正的整数原码、补码、反码相同;负的整数原码、补码、反码要计算。整数在内存中存储的是补码。

//7 //00000000000000000000000000000111-原码 //00000000000000000000000000000111-反码 //00000000000000000000000000000111-补码 //-7 //10000000000000000000000000000111-源码 //11111111111111111111111111111000-反码 //11111111111111111111111111111001-补码(反码+1)

(1)左移位操作符<<

正数左移

int main() { int a = 7; int b = a << 1; printf("a=%d\n", a); //7 printf("b=%d\n", b); //14 return 0; }

负数左移

int main() { int a = -7; int b = a << 1; printf("a=%d\n", a); //7 printf("b=%d\n", b); //-14 return 0; }

(2)右移位操作符>>

算数移位:右边丢弃,左边补原符号位。

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

正数右移

int main() { int a = 7; int b = a >> 1; printf("a=%d\n", a); //7 printf("b=%d\n", b); //3 return 0; }

负数右移(VS编译器使用算数右移)

int main() { int a = -7; int b = a >> 1; printf("a=%d\n", a); //-7 printf("b=%d\n", b); //-4 return 0; }

3、位操作符

(1)按位与&

整数的二进制数各位上两者都是1的,按位与后的补码也是1,其他是0

int main() { int a = 3; int b = -5; int c = a & b; //00000000000000000000000000000011- 3 的补码 //10000000000000000000000000000101- -5 的原码 //11111111111111111111111111111010 //11111111111111111111111111111011- -5 的补码 //00000000000000000000000000000011 printf("c=%d\n", c); //3 return 0; }

(2)按位或|

整数的二进制数各位上只要出现1的,按位或后的补码是1,其他是0

int main() { int a = 3; int b = -5; int c = a | b; //00000000000000000000000000000011- 3 的补码 //10000000000000000000000000000101- -5 的原码 //11111111111111111111111111111010 //11111111111111111111111111111011- -5 的补码 //11111111111111111111111111111011 printf("c=%d\n", c); //-5 return 0; }

(3)按位异或^

整数的二进制数各位上,相同的是0,不同的是1

int main() { int a = 3; int b = -5; int c = a ^ b; //00000000000000000000000000000011- 3 的补码 //10000000000000000000000000000101- -5 的原码 //11111111111111111111111111111010 //11111111111111111111111111111011- -5 的补码 //11111111111111111111111111111000 printf("c=%d\n", c); //-8 return 0; }

(4)位操作符的应用

不使用临时变量,实现两个整数的交换。

方法一:使用按位与、按位或。

int main() { int a = 3; int b = -5; printf("c1=%d\n", a & b); //3 printf("c2=%d\n", a | b); //-5 return 0; }

方法二:使用按位异或

int main() { int a = 3; int b = 5; a = a ^ b; //a=3^5 b = a ^ b; //b=3^5^5 —> b=3 a = a ^ b; //a=3^5^3 —> a=5 return 0; }

4、赋值操作符

=、+=、-=、&=、|=、^=、>>=、<<=

int main() { int a = 0;//初始化 int b = 0; b = 20;//赋值 a = a + 5; a += 5; a = a >> 1; a >>= 1; a = a - 1; a -= 1; return 0; }

5、单目操作符

(1)逻辑反操作 !

int main() { int flag = 3; if (!flag) printf("hehe\n"); else printf("xixi\n"); //输出xixi return 0; }

(2)负值 -

int a = -1;

(3)正值 +

int a = +1;

(4)取地址 &

int a = 3; int* p = &a;

(5)操作数的类型长度(单位:字节) sizeof

int a = 10; int n = sizeof(a);

(6)对一个数的二进制位取反 ~

int a = 0; printf("*d\n", ~a); //输出-1

(7)前置、后置 --

(8)前置、后置 ++

int main() { int a = 3; int b = ++a;//前置++,先++,后使用 printf("%d\n", a);//输出4 printf("%d\n", b);//输出4 }
int main() { int a = 3; int b = a++;//后置++,先使用,后++ printf("%d\n", a);//输出4 printf("%d\n", b);//输出3 }

(9)间接访问操作符(解引用操作符) *

int a = 10; int* p = &a; *p = 20;

(10)强制类型转换 (类型)

int a = (int) 3.14;
srand((unsigned int)time(NULL)); //time()函数的返回值类型为time_t

6、关系操作符

>、>=、<、<=、!=、==

7、逻辑操作符

(1)逻辑与 &&

两个条件都要满足才为真。

(2)逻辑或 ||

两个条件满足一个就为真。

int main() { int a = 3; int b = 0; int c = a && b; //并且 int l = a || b; //或者 printf("c=%d\n", c); //输出0 printf("l=%d\n", l); //输出1 return 0; }

8、条件操作符

if (a > 5) b = 3; else b = -3; (a > 5) ? (b = 3) : (b = -3);

9、逗号表达式

int a = 1; int b = 2; int c = (a > b, a = b + 10, a, b = a + 1); printf("%d\n", c); //输出13

10、下标引用、函数调用和结构成员

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:27:33

44、Unix文件系统:结构、特性与操作详解

Unix文件系统:结构、特性与操作详解 1. Unix文件系统简介 Unix操作系统通过将文件分组到目录中来管理大量文件,每个目录形成独立的命名空间,避免文件名冲突,同时便于文件管理。目录还能为文件提供默认属性。 Unix文件系统呈树状结构,根目录名为 / (ASCII斜杠)。斜杠…

作者头像 李华
网站建设 2026/6/10 13:32:45

安徽色选机产业技术路线与智能应用分析

在食粮加工范畴&#xff0c;在农产品分选范畴&#xff0c;在工业原料精选范畴&#xff0c;色选机已然成为提高产品品质的关键设备&#xff0c;成为提高生产效率的关键设备。安徽省身为国内重要的色选机研发基地&#xff0c;身为国内重要的色选机制造基地&#xff0c;聚集了多家…

作者头像 李华
网站建设 2026/6/9 16:09:08

vue3两个按钮合并成一个按钮

以【喊话】【停止喊话】为例子<template><div class"shout-control"><!-- 合并后的单按钮&#xff1a;根据状态切换文本和逻辑 --><el-button size"small" click"toggleShout" :type"isShouting ? danger : primary&…

作者头像 李华
网站建设 2026/6/10 11:41:11

AI技术内卷时代:从RAG到MCP,大模型开发者必学知识点

本文详细介绍了AI大模型技术栈&#xff0c;从AIGC基础讲起&#xff0c;分析其局限性&#xff0c;引出RAG技术解决实时性问题&#xff0c;Function Calling提供工具调用能力。重点阐述智能体Agent工作原理&#xff0c;以及MCP协议如何作为"AI的USB-C接口"统一AI与外部…

作者头像 李华
网站建设 2026/6/9 16:19:22

Java毕设项目:基于springboot个人博客系统的设计与实现展示自我、分享知识和经验的空间(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/9 2:42:02

告别局域网束缚!Browser-Use浏览器工具 + cpolar,让远程办公更自由

文章目录前言1. 安装Ollama2. Gemma3模型安装与运行3. 虚拟环境准备3.1 安装Python3.2. 安装conda4. 本地部署Brower Use WebUI4.1 创建一个新conda环境4.2 克隆存储库4.3 安装依赖环境4.4 安装浏览器自动化工具4.5 修改配置信息5. 本地运行测试6. 安装内网穿透6.1 配置公网地址…

作者头像 李华