浅谈C++之运算符

一、基本介绍

  运算符是描述对数据进行的运算(操作)、体现数据之间运算关系的符号,运算符也叫操作符。

二、运算符分类

  1. 算术运算符:用于执行基本的数学运算。

    • +(加)
    • -(减)
    • *(乘)
    • /(除)
    • %(取模,求余数)
    • ++(自增)
    • --(自减)
  2. 关系运算符:用于比较两个值。

    • ==(等于)
    • !=(不等于)
    • >(大于)
    • <(小于)
    • >=(大于等于)
    • <=(小于等于)
  3. 逻辑运算符:用于布尔逻辑运算。

    • &&(逻辑与)
    • ||(逻辑或)
    • !(逻辑非)
  4. 位运算符:对操作数的位进行操作。

    • &(位与)
    • |(位或)
    • ^(位异或)
    • ~(位取反)
    • <<(左移)
    • >>(右移)
  5. 赋值运算符:用于赋值操作。

    • =(简单赋值)
    • +=(加法赋值)
    • -=(减法赋值)
    • *=(乘法赋值)
    • /=(除法赋值)
    • %=(取模赋值)
    • &=(位与赋值)
    • |=(位或赋值)
    • ^=(位异或赋值)
    • <<=(左移赋值)
    • >>=(右移赋值)
  6. 其他运算符

    • sizeof(获取变量或类型的大小)
    • &(取地址)
    • *(解引用)
    • new 和 delete(动态内存分配和释放)
    • this(当前对象的指针)
    • . 和 ->(成员访问)
    • ?:(条件运算符,三元运算符)
    • ,(逗号运算符)
  7. 特殊运算符

    • ::(作用域解析运算符)
    • typeid(返回变量类型的信息)
    • const_cast(去除 const 属性)
    • dynamic_cast(运行时类型检查的向下转型)
    • reinterpret_cast(低层次的重新解释转换)
    • static_cast(用于基本的非多态类型转换)

三、运算符示例

算术运算符

int a = 10;
int b = 5;
int sum = a + b;    // 15
int difference = a - b;  // 5
int product = a * b;     // 50
int quotient = a / b;    // 2
int remainder = a % b;   // 0

关系运算符

int x = 10;
int y = 20;
bool equal = (x == y);   // false
bool notEqual = (x != y);  // true
bool lessThan = (x < y);   // true
bool greaterThan = (x > y);  // false
bool lessThanOrEqual = (x <= y);  // true
bool greaterThanOrEqual = (x >= y);  // false

逻辑运算符

bool isRaining = true;
bool isUmbrella = false;
bool shouldStayIndoor = isRaining && isUmbrella;  // false
bool shouldTakeJacket = isRaining || isUmbrella;  // true
bool notRaining = !isRaining;  // false

位运算符

int num1 = 12;  // 1100
int num2 = 9;   // 1001
int andResult = num1 & num2;  // 1000 (8)
int orResult = num1 | num2;   // 1101 (13)
int xorResult = num1 ^ num2;  // 0101 (5)
int notNum1 = ~num1;  // -13 (two's complement)

赋值运算符

int value = 0;
value = 10;  // 简单赋值
value += 5;  // 加法赋值,value 现在是 15
value -= 3;  // 减法赋值,value 现在是 12
value *= 4;  // 乘法赋值,value 现在是 48
value /= 2;  // 除法赋值,value 现在是 24
value %= 5;  // 取模赋值,value 现在是 4

其他运算符

int size = sizeof(int);  // 获取 int 类型的大小
int *ptr = &value;       // 取地址
int originalValue = *ptr;  // 解引用
int array[5] = {1, 2, 3, 4, 5};
int firstElement = array[0];  // 访问数组的第一个元素

特殊运算符

class MyClass {
public:void myMethod() {}
};MyClass obj;
void (MyClass::*mptr)() = &MyClass::myMethod;  // 成员指针int main() {MyClass obj;(obj.*mptr)();  // 通过成员指针调用成员函数return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 技巧 如何在IDEA2024 中快速打出System.out.println();

1.基本用法 键入sout回车 回车后变成&#xff1a; 2.打印变量 快速打印变量,以打印变量名为set为例&#xff0c;set.sout回车&#xff0c; 回车后变成

Java 每日一刊(第13期):this super static

“优秀的代码不仅仅是给机器看的&#xff0c;更是给人看的。” 前言 这里是分享 Java 相关内容的专刊&#xff0c;每日一更。 本期将为大家带来以下内容&#xff1a; this 关键字super 关键字static 关键字 this 关键字 this 关键字是 Java 中最常见的关键字之一&#xf…

pg入门18—如何使用pg gis

1. 下载postgre gis镜像 2. 运行镜像 docker run -p 15432:5432 -d -e POSTGRES_PASSWORDAb123456! postgis/postgis:12-3.4-alpine 3. 使用gis # 进入容器&#xff0c;登录pgdocker exec -it bash# 登录数据库psql -U postgres# 创建数据库CREATE DATABASE mygeotest;# 使用…

计算机毕业设计之:教学平台微信小程序(

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Linux —— 多线程

一、本篇重点 1.了解线程概念&#xff0c;理解线程与进程区别与联系 2.理解和学会线程控制相关的接口和操作 3.了解线程分离与线程安全的概念 4.学会线程同步。 5.学会互斥量&#xff0c;条件变量&#xff0c;posix信号量&#xff0c;以及读写锁 6.理解基于读写锁的读者写…

用 HTML + JavaScript DIY 一个渐进式延迟法定退休年龄测算器

为减轻社会和个人因退休年龄变化带来的冲击&#xff0c;近日&#xff0c;全国人民代表大会常务委员会正式发布了关于实施渐进式延迟法定退休年龄的重要决定。 根据该决定&#xff0c;我国将同步启动对男、女职工法定退休年龄的延迟计划。这一调整将采取渐进式的方式进行&#…

第十二周:机器学习笔记

第十二周周报 摘要Abstract机器学习1. Recurrent Neural Network&#xff08;下&#xff09;1.1 RNN的Loss Function怎么求&#xff1f;1.2 RNN奇怪的特性1.3 如何解决 RNN 梯度消失或者爆炸1.4 RNN 其他应用 Pytorch学习1. 现有的网络模型使用以及其修改1.1 在VGG16模型添加Mo…

python-3n+1数链/233

一&#xff1a;3n1数链题目描述 在计算机科学上&#xff0c;有很多类问题是无法解决的&#xff0c;我们称之为不可解决问题。然而&#xff0c;在很多情况下我们并不知道哪一类问题可以解决&#xff0c;哪一类问题不可解决。现在我们就有这样一个问题&#xff0c;问题如下&#…

win11 wsl2安装ubuntu22最快捷方法

操作系统是win11&#xff0c;wsl版本是wsl2&#xff0c;wsl应该不用多介绍了&#xff0c;就是windows上的虚拟机&#xff0c;在wsl上可以很方便的运行Linux系统&#xff0c;性能棒棒的&#xff0c;而且wsl运行的系统和win11主机之间的文件移动是无缝的&#xff0c;就是两个系统…

第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)

这节记录下如何使用redis缓存数据库。 第一步&#xff1a; 先在服务器端安装redis&#xff0c; 下载地址&#xff1a;Releases tporadowski/redis GitHub。 第二步&#xff1a; 安装redis客户端可视化管理软件redisDesktopmanager Redis Desktop Manager - Download 第…

C++ tracy性能分析(二)

环境搭建 项目根目录下 git clone https://github.com/wolfpld/tracy cmake 配置 add_definitions("-DTRACY_ENABLE") add_subdirectory(tracy) include_directories(${TRACY_PUBLIC_DIR}) target_link_libraries(project TracyClient) test.cpp //#define TRACY_C…

完整版:NacosDocker 安装

第一步&#xff1a;先直接通过命令安装 Nacos docker run --name nacos2.2.3 -d -p 8848:8848 -e MODEstandalone f151dab7a111 第二步&#xff1a;创建 Docker 挂载目录 # 创建 log 目录 mkdir -p /root/nacos 第三步&#xff1a;将 Docker 容器的文件复制到挂载目录中 …

[Linux] Linux进程PCB内部信息的深入理解

标题&#xff1a;[Linux] Linux进程PCB内部信息的深入理解 个人主页&#xff1a;水墨不写bug &#xff08;图片来自网络&#xff09; 目录 一.查看进程 二.认识并了解进程的关键信息 I&#xff0c;PID/PPID II&#xff0c;exe III&#xff0c;cwd 三、fork&#xff08;&…

LeetCode[中等] 215. 数组中的第 K 个最大元素

给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 思路&#xff1a;基于快排改进的快速…

【云原生安全篇】一文掌握Harbor集成Trivy应用实践

【云原生安全篇】一文掌握Harbor集成Trivy应用实践 目录 1 概念 1.1 什么是 Harbor 和 Trivy&#xff1f; 1.1.1 Harbor 1.1.2 Trivy 1.2 Harbor 与 Trivy 的关系 Trivy 在 Harbor 中的作用&#xff1a; 1.3 镜像扫描工作流程 2 实战案例&#xff1a;在Harbor 配置 Trivy …

初识模版!!

初识模版 1.泛型编程1.1 如何实现一个交换函数呢&#xff08;使得所有数据都可以交换&#xff09;&#xff1f;1.2 那可以不可以让编译器根据不同的类型利用该模子来生成代码呢&#xff1f; 2.模版类型2.1 模版概念2.2 函数模版的原理2.3 函数模板的实例化2.4 模板参数的匹配原…

Windows上创建批处理.bat文件并且注册为开机自启(Python-web微服务)

1. winodws桌面点击创建文本文件 &#xff08;文件名称.txt&#xff09; 2. 将如下代码写入txt文件中 echo off if "%1""h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h"…

(七)使用SoapUI工具调用WebAPI

1.调用一个无参数的GET请求 [HttpGet(Name "GetWeatherForecast")]public IEnumerable<WeatherForecast> Get(){return Enumerable.Range(1, 5).Select(index > new WeatherForecast{Date DateTime.Now.AddDays(index),TemperatureC Random.Shared.Next(…

科研绘图系列:R语言箱线图(boxplot)

文章目录 介绍加载R包导入数据画图1画图2合并图形系统信息介绍 箱线图展示不同分组的数据分布差异。 加载R包 library(here) library("tidyverse") library("ggpubr") library("scales")

【工具】Windows|两款开源桌面窗口管理小工具Deskpins和WindowTop

总结 Deskpins 功能单一&#xff0c;拖到窗口上窗口就可以置顶并且标记钉子标签&#xff0c;大小 104 KB&#xff0c;开源位置&#xff1a;https://github.com/thewhitegrizzli/DeskPins/releases WindowTop 功能完善全面强大&#xff0c;包括透明度、置顶、选区置顶等一系列功…