C++ 运算符的优先级和关联性表
C++ 运算符的优先级和关联性表
- 1. Precedence and associativity (优先级和结合性)
- 2. Alternative spellings (替代拼写)
- 3. C++ operator precedence and associativity table (C++ 运算符的优先级和关联性表)
- References
C++ documentation (C++ 文档)
https://learn.microsoft.com/en-us/cpp/cpp/
https://learn.microsoft.com/zh-cn/cpp/cpp/
C++ built-in operators, precedence, and associativity (C++ 内置运算符、优先级和关联性)
https://learn.microsoft.com/en-us/cpp/cpp/cpp-built-in-operators-precedence-and-associativity
https://learn.microsoft.com/zh-cn/cpp/cpp/cpp-built-in-operators-precedence-and-associativity
The C++ language includes all C operators and adds several new operators. Operators specify an evaluation to be performed on one or more operands.
C++ 语言包括所有 C 运算符,并添加多个新的运算符。运算符指定对一个或多个操作数执行的计算。
1. Precedence and associativity (优先级和结合性)
Operator precedence specifies the order of operations in expressions that contain more than one operator. Operator associativity specifies whether, in an expression that contains multiple operators with the same precedence, an operand is grouped with the one on its left or the one on its right.
运算符优先级指定了包含多个运算符的表达式中的运算顺序。运算符关联性指定了在包含多个具有相同优先级的运算符的表达式中,操作数是与其左侧还是右侧的操作数组合。
precedence [ˈpresɪdəns]:n. 优先,优先权
associativity [ə'səʊʃəˌtɪvɪtɪ]:n. 可结合性,结合体,缔合性
2. Alternative spellings (替代拼写)
C++ specifies alternative spellings for some operators. In C, the alternative spellings are provided as macros in the <iso646.h> header. In C++, these alternatives are keywords, and use of <iso646.h> or the C++ equivalent <ciso646> is deprecated.
C++ 为某些运算符指定了替代拼写。在 C 中,替代拼写在 <iso646.h> 标头中作为宏提供。在 C++ 中,这些替代项是关键字,<iso646.h> 或 C++ 等效的 <ciso646> 已弃用。
3. C++ operator precedence and associativity table (C++ 运算符的优先级和关联性表)
The following table shows the precedence and associativity of C++ operators (from highest to lowest precedence). Operators with the same precedence number have equal precedence unless another relationship is explicitly forced by parentheses.
下表显示 C++ 运算符的优先级和关联性 (从最高优先级到最低优先级)。优先级别编号相同的运算符具有等同的优先级别,除非由括号显式施加另一种关系。
| Operator Description | Operator | Alternative (替代项) |
|---|---|---|
| Group 1 precedence, no associativity (第 1 组优先级,无关联性) | ||
| Scope resolution (作用域解析运算符) | :: | |
| Group 2 precedence, left to right associativity (第 2 组优先级,从左到右关联) | ||
| Member selection (object or pointer) | . or -> | |
| Array subscript (数组下标) | [] | |
| Function call (函数调用) | () | |
| Postfix increment (后缀递增) | ++ | |
| Postfix decrement (后缀递减) | -- | |
| Type name (类型名称) | typeid | |
| Constant type conversion (常量类型转换) | const_cast | |
| Dynamic type conversion (动态类型转换) | dynamic_cast | |
| Reinterpreted type conversion (重新解释的类型转换) | reinterpret_cast | |
| Static type conversion (静态类型转换) | static_cast | |
| Group 3 precedence, right to left associativity (第 3 组优先级,从右到左关联) | ||
| Size of object or type (对象或类型的大小) | sizeof | |
| Prefix increment (前缀递增) | ++ | |
| Prefix decrement (前缀递减) | -- | |
| One’s complement (二进制反码) | ~ | compl |
| Logical not (逻辑“非”) | ! | not |
| Unary negation (一元求反) | - | |
| Unary plus (一元加) | + | |
| Address-of | & | |
| Indirection (间接寻址) | * | |
| Create object (创建对象) | new | |
| Destroy object (销毁对象) | delete | |
| Cast (强制转换) | () | |
| Group 4 precedence, left to right associativity (第 4 组优先级,从左到右关联) | ||
| Pointer-to-member (objects or pointers) | .* or ->* | |
| Group 5 precedence, left to right associativity (第 5 组优先级,从左到右关联) | ||
| Multiplication (乘法) | * | |
| Division (除法) | / | |
| Modulus (取模) | % | |
| Group 6 precedence, left to right associativity (第 6 组优先级,从左到右关联) | ||
| Addition (加法) | + | |
| Subtraction (减法) | - | |
| Group 7 precedence, left to right associativity (第 7 组优先级,从左到右关联) | ||
| Left shift () | << | |
| Right shift () | >> | |
| Group 8 precedence, left to right associativity (第 8 组优先级,从左到右关联) | ||
| Less than (小于) | < | |
| Greater than (大于) | > | |
| Less than or equal to (小于或等于) | <= | |
| Greater than or equal to (大于或等于) | >= | |
| Group 9 precedence, left to right associativity (第 9 组优先级,从左到右关联) | ||
| Equality (等于) | == | |
| Inequality (不相等) | != | not_eq |
| Group 10 precedence left to right associativity (第 10 组优先级,从左到右关联) | ||
| Bitwise AND (按位“与”) | & | bitand |
| Group 11 precedence, left to right associativity (第 11 组优先级,从左到右关联) | ||
| Bitwise exclusive OR (按位“异或”) | ^ | xor |
| Group 12 precedence, left to right associativity (第 12 组优先级,从左到右关联) | ||
| Bitwise inclusive OR (按位“与或”) | | | bitor |
| Group 13 precedence, left to right associativity (第 13 组优先级,从左到右关联) | ||
| Logical AND (逻辑与) | && | and |
| Group 14 precedence, left to right associativity (第 14 组优先级,从左到右关联) | ||
| Logical OR (逻辑或) | || | or |
| Group 15 precedence, right to left associativity (第 15 组优先级,从右到左关联) | ||
| Conditional (条件) | ? : | |
| Assignment | = | |
| Multiplication assignment (乘法赋值) | *= | |
| Division assignment (除法赋值) | /= | |
| Modulus assignment (取模赋值) | %= | |
| Addition assignment (加法赋值) | += | |
| Subtraction assignment (减法赋值) | -= | |
| Left-shift assignment (左移赋值) | <<= | |
| Right-shift assignment (右移赋值) | >>= | |
| Bitwise AND assignment (按位“与”赋值) | &= | and_eq |
| Bitwise inclusive OR assignment (按位“与或”赋值) | |= | or_eq |
| Bitwise exclusive OR assignment (按位“异或”赋值) | ^= | xor_eq |
| throw expression | throw | |
| Group 16 precedence, left to right associativity (第 16 组优先级,从左到右关联) | ||
| Comma | , |
References
[1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/
[2] C++ built-in operators, precedence, and associativity, https://learn.microsoft.com/en-us/cpp/cpp/cpp-built-in-operators-precedence-and-associativity
相关文章:
C++ 运算符的优先级和关联性表
C 运算符的优先级和关联性表 1. Precedence and associativity (优先级和结合性)2. Alternative spellings (替代拼写)3. C operator precedence and associativity table (C 运算符的优先级和关联性表)References C documentation (C 文档) https://learn.microsoft.com/en-us…...
正则表达式替换字符串的方法
正则表达式替换字符串的方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一个非常实用的编程技术:使用正则表达式替换字符串。正则…...
开源模型应用落地-FastAPI-助力模型交互-WebSocket篇(五)
一、前言 使用 FastAPI 可以帮助我们更简单高效地部署 AI 交互业务。FastAPI 提供了快速构建 API 的能力,开发者可以轻松地定义模型需要的输入和输出格式,并编写好相应的业务逻辑。 FastAPI 的异步高性能架构,可以有效支持大量并发的预测请求,为用户提供流畅的交互体验。此外,F…...
2024/7/4总结
http协议 http协议,是一个客户端请求和响应的标准协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。用户输入地址和端口号之后就可以从服务器上取得所需要的网页信息。 通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给…...
【Android面试八股文】Looper如何在子线程中创建?
文章目录 一、Looper的几个重要方法二、子线程中使用Looper的方式1三、子线程中使用Looper的方式23.1 使用HandlerThread实现3.2 HandlerThread源码解析创建子线程的 Looper必须要通过 Looper.prepare()初始化looper,然后再通过 Looper.loop()方法让 Loop运行起来。 那么具…...
IT项目管理文档体系
IT项目管理文档体系是确保项目顺利进行、有效沟通和合规性的关键组成部分。一个完善的文档体系能够帮助项目团队记录决策过程、明确职责、跟踪进度、管理变更并提供审计痕迹。 项目启动文档: 项目章程:正式授权项目启动,定义项目目标、范围、…...
ELK企业内部日志分析系统(1)
ELKKafkaFilebeat企业内部日志分析系统(1) Elasticsearch集群部署 1.部署环境 IP地址主机名配置系统版本192.168.222.129es12核4GRockyLinux192.168.222.130es22核3GRockyLinux192.168.222.131es32核3GRockyLinux 2.配置主机名解析和主机名 #关闭防火墙与selinux #更改主机…...
反序列化POP链技术详解
POP( Procedure Oriented Programming )链是反序列化安全问题中相对比较重要的技术点,相比于其他的反序列化问题,这种漏洞的产生更加难以发现,以及在利用上也比较复杂。 要掌握这个东西首先要先了解面向对象中的几个特…...
process.env.VUE_APP_BASE_API
前端:process.env.VUE_APP_BASE_API 在Vue.js项目中,特别是使用Vue CLI进行配置的项目,process.env.VUE_APP_BASE_API 是一个环境变量的引用。Vue CLI允许开发者在不同环境下配置不同的环境变量,这对于管理API基础路径、切换开发…...
面试题--SpirngCloud
SpringCloud 有哪些核心组件?(必会) Eureka: 注册中心, 服务注册和发现 Ribbon: 负载均衡, 实现服务调用的负载均衡 Hystrix: 熔断器 Feign: 远程调用 Zuul: 网关 Spring Cloud Config: 配置中心 (1)Eureka 提供服务注册和发现, 是注册中心. 有两个组…...
中位数贪心,3086. 拾起 K 个 1 需要的最少行动次数
一、题目 1、题目描述 给你一个下标从 0 开始的二进制数组 nums,其长度为 n ;另给你一个 正整数 k 以及一个 非负整数 maxChanges 。 Alice 在玩一个游戏,游戏的目标是让 Alice 使用 最少 数量的 行动 次数从 nums 中拾起 k 个 1 。游戏开始…...
xml_woarchive undefined symbol
最近在linux中编译一个自己写的老代码。是个C动态库。可以编译成功,但直到运行的时候才报 boost xml_woarchive undefined symbol. 解决的方法是在编译时要加上 wserialization 库。 注意,这个库有含 w 和不含 w 两个。在我这里需要使用含 w 的。 如果…...
SiCat:一款多功能漏洞利用管理与搜索工具
关于SiCat SiCat是一款多功能漏洞利用管理与搜索工具,该工具基于纯Python 3开发,旨在帮助广大研究人员有效地识别和收集来自开源和本地存储库的漏洞信息。 SiCat专注于网络安全管理方面的实践工作,允许研究人员快速实现在线搜索,…...
毕业论文初稿写作方法与过程
毕业论文初稿写作方法与过程 毕业论文是大学生在学业结束前必须完成的一项重要任务,它不仅是对学生所学知识的综合运用,也是对学生研究能力和写作能力的检验。写好毕业论文初稿是完成高质量毕业论文的关键一步。下面将具体阐述毕业论文初稿的写作方法和过…...
SLAM 精度评估
SLAM 精度的评估有两个最重要的指标,即绝对轨迹误差(ATE)和相对位姿误差(RPE)的 均方根误差(RMSE): 绝对轨迹误差:直接计算相机位姿的真实值与 SLAM 系统的估计值之间的差值,首先将…...
Postman使用教程
传统接口风格 RESTful风格 使用Postman完成测试用例目标: Postman教程 (1)准备工作,下载Postman新建 (2)登录接口调试-获取验证码 (3)登录接口调试-登录 (4)…...
UDP协议深入解析
一. UDP报文结构 UDP报文由以下4个字段组成: 源端口号(Source Port):16位,标识发送方的端口号。如果发送方没有使用端口号,则该字段为0。 目标端口号(Destination Port):16位,标识接收方的端口号。 长度(Length):16位,表示UDP报文的总长度,…...
Rethinking Federated Learning with Domain Shift: A Prototype View
CVPR2023,针对分布式数据来自不同的域时,私有模型在其他域上表现出退化性能(具有域转移)的问题。提出用于域转移下联邦学习的联邦原型学习(FPL)。核心思想是构建集群原型和无偏原型,提供富有成效的领域知识和公平的收敛目标。将样本嵌入拉近到属于相同语义的集群原型,而…...
打卡第2天----数组双指针,滑动窗口
今天是参与训练营第二天,这几道题我都看懂了,自己也能写出来了,实现思路很重要,万事开头难,希望我可以坚持下去。希望最后的结果是量变带来质变。 一、理解双指针思想 leetcode编号:977 不止是在卡尔这里…...
Running cmake version 2.8.12.2解决方案
Centos7安装mysql8.0,编译环节出现如下报错: Running cmake version 2.8.12.2 CMake Warning at CMakeLists.txt:82 (MESSAGE):Please use cmake3 rather than cmake on this platform-- Please install cmake3 (yum install cmake3) CMake Error at CMa…...
别再手动改配置了!用Docker Compose一键部署Pikachu靶场,5分钟搞定测试环境
5分钟极速搭建Pikachu靶场:Docker Compose自动化实战指南 每次准备网络安全练习环境时,最头疼的莫过于反复安装配置各种服务——PHP版本不兼容、MySQL连接失败、Web服务器配置错误...这些琐碎问题消耗了本应用于渗透测试学习的宝贵时间。今天要分享的这套…...
Thorium浏览器:重新定义Chromium性能与隐私体验的开源解决方案
Thorium浏览器:重新定义Chromium性能与隐私体验的开源解决方案 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Windows and MacOS/Raspi/Android/Special builds are in different repositories, links are towards the top of t…...
3步快速解密QQ音乐加密文件:QMCDecode终极免费解决方案
3步快速解密QQ音乐加密文件:QMCDecode终极免费解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认…...
忍者像素绘卷参数详解:如何通过提示词触发‘火之意志’专属风格权重
忍者像素绘卷参数详解:如何通过提示词触发火之意志专属风格权重 1. 认识忍者像素绘卷 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工具,它将传统忍者文化与16-Bit复古游戏美学完美结合。这款工具特别适合创作具有热血动漫风格的像素艺术作…...
3步诊断与优化:使用NVIDIA Profile Inspector解决显卡性能瓶颈
3步诊断与优化:使用NVIDIA Profile Inspector解决显卡性能瓶颈 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector作为一款专业的显卡驱动级配置工具,能够…...
基于Xinference-v1.17.1的嵌入式Linux开发指南
基于Xinference-v1.17.1的嵌入式Linux开发指南 1. 引言 嵌入式设备上的AI推理一直是个技术挑战,特别是在资源受限的环境中部署大模型。Xinference-v1.17.1作为一个开源推理框架,为嵌入式Linux系统提供了轻量级的AI模型部署方案。无论你是想在树莓派上运…...
Step3-VL-10B内网穿透应用:安全远程模型调用方案
Step3-VL-10B内网穿透应用:安全远程模型调用方案 1. 场景需求与痛点分析 很多企业和机构在内部部署了强大的多模态AI模型,比如Step3-VL-10B这样的视觉语言模型,能够处理图像和文本的复杂任务。但这些模型通常运行在内网环境中,外…...
卷积计算常见误区解析:为什么你的结果和理论值对不上?
卷积计算常见误区解析:为什么你的结果和理论值对不上? 在图像处理和深度学习领域,卷积操作是基础中的基础。但令人惊讶的是,即使是经验丰富的开发者,在实际编码时也常常遇到计算结果与预期不符的情况。这就像做菜时严格…...
告别OpenAI API费用:手把手教你用本地BGE模型+FAISS搭建LangChain私有知识库
零成本构建企业级知识库:基于BGE与FAISS的私有化LangChain解决方案 在AI应用开发领域,数据隐私和成本控制正成为越来越多开发者的核心考量。当OpenAI等商业API按调用次数收费时,频繁的查询请求可能让个人开发者和小型团队不堪重负。更关键的是…...
TinyCheck开发指南:从源码结构到核心类设计,理解网络安全检测平台架构
TinyCheck开发指南:从源码结构到核心类设计,理解网络安全检测平台架构 【免费下载链接】TinyCheck TinyCheck allows you to easily capture network communications from a smartphone or any device which can be associated to a Wi-Fi access point …...
