当前位置: 首页 > news >正文

C/C++常见符号与运算符

C/C++常见符号与运算符对照表

符号用法与意义与Java类比
:在条件运算符中 (cond ? x : y) 表示条件为假的分支;
switch-case 中如 case 1:表示标签结束点;
在自定义标签如 label: 中用于 goto 跳转
Java中? :三元运算相同;switch-case中也有:用于分支
:: (C++特有)作用域解析符,std::stringClassName::method() 指定类或命名空间作用域。在C中不存在该符号。Java使用.访问静态成员,C++使用::明确作用域,C无此特性
~按位取反(bitwise NOT),对整数位逐个取反,如 ~x与Java ~运算相同
&取地址和按位与运算符:
- &x 取变量x的地址,用于指针。
- a & b 按位与运算。
Java中&为按位与,不存在取地址运算。C/C++ &多用途
*指针声明与解引用,以及乘法:
- int *p;声明p为指针
- *p解引用指针
- a * b乘法
Java *仅作乘法;C/C++中还用来声明指针与解引用指针
->用于指针访问结构体成员:ptr->field 等价 (*ptr).fieldC/C++特有,Java无指针需->,Java对象用.访问成员
.成员访问运算符,用obj.field访问结构体、类的成员与Java中obj.field相同
[]数组下标运算符:arr[i]访问数组元素与Java中数组访问相同
++/--自增自减运算符,i++++ii----i与Java意义相同与Java自增自减一致
+= -= *= /= %= <<= >>= &= ^= `=`复合赋值运算符,与Java相同,如 a += ba = a + b
%取模运算符:a % b获取a除b的余数与Java %相同
^按位异或运算符:a ^ b对位进行异或。与Java ^位异或相同
``按位或运算符:`a
<< >>左移、右移位运算符,a << n左移n位,a >> n右移n位与Java移位运算相同
!逻辑非运算符:!expr ,expr为0则结果1,否则结果0与Java逻辑非!相同
&&逻辑与运算符:expr1 && expr2
如果expr1为0(假)则不计算expr2,返回0(假);
如果expr1非0(真),再计算expr2决定最终结果。
与Java中&&语义相同,都为短路与;当第一个为假时不继续计算
... (省略号)用于可变参数函数声明,如 int printf(const char *fmt, ...);表示变长参数列表与Java的可变参数列表作用类似,但C使用不同的机制(varargs)
;语句结束符,每句以;结束与Java中语句结束使用分号相同
{ }定义代码块或作用域,如函数体、复合语句、结构初始值列表与Java中大括号用途相同
# ##预处理器指令与宏相关符号:#include#define以及##参数拼接C/C++预处理机制特有,Java无此编译前处理方式

&& 的具体解释

&& 是逻辑与(logical AND)运算符,用于判断两个条件表达式在布尔意义上的与关系:

  • 表达式 expr1 && expr2 的求值过程是短路求值:
    • 首先计算 expr1,如果 expr1 为0(C中0表示false),则整个expr1 && expr2结果为0,不计算expr2
    • 如果 expr1非0(true),则再计算expr2,结果取决于expr2是否为非0(true)。

这种行为与Java中的&&完全一致。

示例:

int a = 5;
int b = 0;if (a > 0 && b != 0) {// 当a > 0为真,会去检查b != 0。b=0则b != 0为假,因此整个if为false// 如果a <=0,则不会检查b != 0。
}

总体对比与理解

  • 对于有Java基础的人,许多C/C++运算符语义与Java相似(如逻辑运算&&, ||,算术与移位运算等)。
  • 不同点在于C/C++中有指针相关运算符(&取地址、*解引用、->访问指针成员)和预处理器指令(#, ##),以及C++作用域解析::
  • 在C中,&&|| 都提供短路求值,与Java中相同,这有助于使用条件判断更高效。

通过这张表格和解释,你可以快速理解C/C++中这些符号的意义和用法。

相关文章:

C/C++常见符号与运算符

C/C常见符号与运算符对照表 符号用法与意义与Java类比:在条件运算符中 (cond ? x : y) 表示条件为假的分支&#xff1b;在 switch-case 中如 case 1:表示标签结束点&#xff1b;在自定义标签如 label: 中用于 goto 跳转Java中? :三元运算相同&#xff1b;switch-case中也有:…...

了解 k8s 网络基础知识

了解 Docker 网络模式 在使用 Docker run 创建 Docker 容器时&#xff0c;可以使用 --net 选项指定容器的网络模式&#xff0c;Docker 可以有4种网络模式。 host 模式。–nethost 指定和宿主机共用一个 NetWork Namespace&#xff0c;容器中的网络环境&#xff08;ip 地址、路…...

用户信息界面按钮禁用+发送消息功能

用户信息界面按钮禁用发送消息功能 前言 那么在上一集我们就完成了个人信息窗口所有的内容的修改&#xff0c;那么我们就需要进一步来看我们别的用户的信息界面的窗口。 需求分析 在之前的我们也讲了用户信息界面窗口一共有下图几种组件。 用户头像、用户id、用户昵称、用户…...

接近开关传感器-PCB线图电感式传感器【衰减系数1】

设计和工作原理 衰减系数为1的传感器是在电感式接近开关的基础上装备了特殊的振荡器。传感器内部有两个耦合空心线圈&#xff0c;能够保证根据不同的金属特性作合适的检测调整。无需考虑目标物是不同的金属&#xff0c;因为传感器能在同一感应距离下检测所有金属。 衰减系数为…...

C/C++流星雨

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/C…...

计算机网络:传输层、应用层、网络安全、视频/音频/无线网络、下一代因特网

目录 &#xff08;五&#xff09;传输层 1&#xff0e;传输层寻址与端口 2&#xff0e;无连接服务与面向连接服务 3. 传输连接的建立与释放 4. UDP 的优点 5. UDP 和 TCP 报文段报头格式 6. TCP 的流量控制 7&#xff0e;TCP 的拥塞控制 8. TCP 传送连接的管理 &#…...

[漏洞挖掘与防护] 05.CVE-2018-12613:phpMyAdmin 4.8.1后台文件包含缺陷复现及防御措施

这是作者新开的一个专栏——“漏洞挖掘与防护”,前期会复现各种经典和最新漏洞,并总结防护技巧;后期尝试从零学习漏洞挖掘技术,包括Web漏洞和二进制及IOT相关漏洞,以及Fuzzing技术。新的征程,新的开启,漫漫长征路,偏向虎山行。享受过程,感谢您的陪伴,一起加油~ 欢迎关…...

GroundingDINO微调训练_训练日志解释

文章目录 1. 训练日志1. Epoch 和 Iteration2. Learning Rate&#xff08;学习率&#xff09;3. ETA&#xff08;预计剩余时间&#xff09;4. Time 和 Data Time5. Memory6. Gradient Norm&#xff08;梯度范数&#xff09;7. Loss&#xff08;损失&#xff09;8. Individual L…...

【0362】Postgres内核 XLogReaderState readBuf 有完整 XLOG page header 信息 ? ( 7 )

上一篇: 【0361】Postgres内核 page_read 读取所请求数据长度(至少 short page header)( 6 ) 文章目录 1. 检查 page_read 返回值 readLen2. 根据 readBuf 计算 XLogPageHeader 大小2.1 验证 XLOG Page header2.2 更新 XLogReaderState 读取状态信息1. 检查 page_read 返回…...

H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用

官方文档地址 1.注册 Steam API Key&#xff1a; 你需要一个 Steam Web API Key&#xff0c;可以在 Steam API Key 页面 获取。https://steamcommunity.com/dev/apikey 这里开发做demo用自己steam账户的就好&#xff0c;后续上线要用公司的账户 2.使用 OpenID 登录&#xff…...

pytorch多GPU训练教程

pytorch多GPU训练教程 文章目录 pytorch多GPU训练教程1. Torch 的两种并行化模型封装1.1 DataParallel1.2 DistributedDataParallel 2. 多GPU训练的三种架构组织方式2.2 数据不拆分&#xff0c;模型拆分&#xff08;Model Parallelism&#xff09;2.3 数据拆分&#xff0c;模型…...

力扣--LCR 178.训练计划VI

题目 教学过程中&#xff0c;教练示范一次&#xff0c;学员跟做三次。该过程被混乱剪辑后&#xff0c;记录于数组 actions&#xff0c;其中 actions[i] 表示做出该动作的人员编号。请返回教练的编号。 示例 1&#xff1a; 输入&#xff1a;actions [5, 7, 5, 5] 输出&#…...

Linux 网络接口配置

在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如此对这些接口进行配置. 在 Linux 中,网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络…...

【从零开始入门unity游戏开发之——C#篇01】理论开篇

文章目录 前言前置条件什么是编程&#xff1f;什么是代码&#xff1f;什么是编程语言&#xff1f;常见的编程语言什么是C#&#xff1f;学习Unity为什么要先学习C#&#xff1f;选择适合自己的IDE集成开发环境VSCode安装和环境配置VSCode调试模式专栏推荐完结 前言 这个系列我想…...

ABAP开发-批量导入BAPI和BDC_1

系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言一、概念二、BDC和BAPI数据导入1、BDC数据导入&#xff08;录屏&#xff09;2、BAPI数据导入 三、实例1、BAPI2、BDC 总结 前言 一、概念 SAP中&#xff0c;对一个事务码反复操作并且达到批量处理数据的效果&#xff0…...

RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式

文章目录 六. RPC(RPC通信模式)客户端服务端 七. Publisher Confirms(发布确认模式)1. Publishing Messages Individually(单独确认)2. Publishing Messages in Batches(批量确认)3. Handling Publisher Confirms Asynchronously(异步确认) 六. RPC(RPC通信模式) 客⼾端发送消息…...

并非传统意义上的整体二分

是的&#xff0c;如标题所见&#xff0c;本文章会以作者所理解的整体二分思想来介绍一系列整体二分食用方法。 一下内容均是作者本人理解&#xff0c;可能会与算法本身冲突。 1 本质 1.1 板子及从中的启发 我们在做主席树板子的时候&#xff0c;如果使用整体二分&#xff0…...

PostgreSQL的一主一从集群搭建部署 (同步)

一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2 二、安装数据库 源码包方式&#xff08;主&#xff09; 1、创建用户 [rootkeep-postgres12-node1 ~]# groupadd postgres [rootkeep-post…...

ios逆向某新闻 md5+aes

本期的案例比较简单&#xff0c;也许是ios逆向算法本来就比较简单的原因&#xff0c;所以前面我就多扯一些爬虫和逆向的东西。之前写的文章都是js逆向和android逆向的案例&#xff0c;这也是首篇ios的案例&#xff0c;所以会从入门开始讲起。 3大逆向对比 首先爬虫工程师大部…...

grpc的负载均衡

grpc的负载均衡分为client-side load balance和server-side load balance。 所谓的“客户端负载均衡”是指主调方调用被调方的时候&#xff0c;在grpc.DialContext里需要指定grpc.WithDefaultServiceConfig&#xff0c;这个DefaultServiceConfig默认是用pick-first策略。也支持…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...