什么是运算符

运算符是让程序执行特定的数学或逻辑操作的符号,用来表示针对数据的特定操作,也称之为操作符。C++运算符分别有算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、移位运算符、sizeof运算符、三目运算符、逗号运算符和域解析运算符。

算术运算符

C++中的算术运算符用于进行数学运算,包括加法、减法、乘法、除法和取模等。以下是C++算术运算符的介绍和使用:

  1. 加法运算符(+) :用于将两个数值相加,或者将一个数值与一个字符串连接起来。例如:
点击查看代码
#include <iostream>

int main() {
int a = 5;
int b = 3;
int sum = a + b; // 8
std::cout << sum;
}

2. 减法运算符(-) :用于从一个数值中减去另一个数值。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 10;
int b = 2;
int d = a - b; // 8
std::cout << d; }

3. 乘法运算符(*) :用于将两个数组相乘。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
int b = 3;
int product = a * b; // 15
std::cout << product;
}

4. 除法运算符(/):用于将一个数组除以另一个数值。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 10;
int b = 3;
int quotient = a / b; // 3
std::cout << quotient;
}

注意,上述示例,因为计算结果的变量是整型,所以除法运算符会截取整数部分,小数部分会被忽略。如果需要保留小数部分,计算结果的变量可以使用浮点数类型。
5. 取模运算符(%):用于计算两个整数相除的余数。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 10;
int b = 3;
int c = a % b; // 1
std::cout<< c; }

6. 一元加运算符(+):用于将数值增加1。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
a++; // a的值变为6
std::cout << a << std::endl ;
/*++a; // 7 std::cout << a ;*/
}

7. 一元减运算符(-):用于将数值减少1。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
a--; // 先自减再赋值,a变为4
std::cout << a << std::endl;
/*--a; // 先赋值再自减,a的值变为3
std::cout << a;*/
}

**关系运算符**
C++的关系运算符用于比较两个值之间的关系,如等于、不等于、大于、小于等。以下是C++关系运算符的介绍和使用:
1. 等于运算符(==):用于判断两个值是否相等。例如:

点击查看代码
int main()
{
int a = 5;
int b = 5;
if(a == b)
{
// 如果a等于b,则执行这里的代码
std::cout << "相等";
}
}

2. 不等于运算符(!=) :用于判断两个值是否不相等。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
int b = 3;
if(a != b)
{
// 如果a不等于b,则执行这里的代码
std::cout << "不相等";
}
}

3. 大于运算符(>) :用于判断一个值是否大于另一个值。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
int b = 3;
if(a > b)
{
// 如果a大于b,则执行这里的代码
std::cout << "a大于b";
}
}

4. 小于运算符(<) :用于判断一个值是否小于另一个值。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 3;
int b = 5;
if(a < b)
{
// 如果a小于b,则执行这里的代码
std::cout << "a小于b";
}
}

5. 大于等于运算符(>=) :用于判断一个值是否大于或等于另一个值。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
int b = 3;
if(a >= b)
{
// 如果a大于或等于b,则执行这里的代码
std::cout << "a大于或等于b";
} }

6. 小于等于运算符(<=):用于判断一个值是否小于或等于另外一个值。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 3;
int b = 5;
if(a < b)
{
// 如果a 小于或等于b,则执行这里的代码
std::cout << "a小于或等于b";
}
}

**逻辑运算符**
C++的逻辑运算符用于对布尔值进行逻辑运算,包括逻辑与(&&)、逻辑或(||)、逻辑非(!)。下面是逻辑运算符的介绍和使用:
1. 逻辑与运算符(&&) :用于判断两个布尔值是否都为真。例如:

点击查看代码
#include  <iostream>
int main()
{
bool a = true;
bool b = true;
if(a && b)
{
// 如果a和b都为真,则执行这里的代码
std::cout << "a和b都为真";
}
}

2. 逻辑或运算符(||):用于判断两个布尔值是否有一个为真。例如:

点击查看代码
#include <iostream>
int main()
{
bool a = true;
bool b = false;
if(a || b)
{
// 如果a或b有一个为真,则执行这里的代码
std::cout << "a或b有一个为真";
}
}

3. 逻辑非运算符(!) :用于对一个布尔值进行取反操作。例如:

点击查看代码
#include <iostream>
int main()
{
bool a = false;
if (!a)
{
// 如果a为真,则执行这里的代码
std::cout << "将a取反等于真";
}
}

由于逻辑运算符的优先级低于算术运算符和关系运算符,但高于赋值运算符。因此,在复杂的表达式中,可以使用括号来明确指定运算顺序。
例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
int b = 3;
int c = 2;
// 使用括号明确运算顺序,先计算加法再计算关系运算,最后进行逻辑与运算
int sum = (a + b) && (b > c); // 1
if(sum)
{
// 如果sum为真,则执行这里的代码
std:: cout << sum;
}
}

**赋值运算符**
1. 赋值运算符(=) :用于将一个值赋给一个变量。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5; // 将5赋值给变量a
std::cout << a;
}

2. 加等赋值运算符(+=) :用于将一个值加到一个变量上,并将结果赋值给该变量。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
a += 3; // 将3加到a上,并将结果赋值给a 5 + 3 = 8
std::cout << a;
}

3. 减等赋值运算符(-=):用于从一个变量中减小一个值,并将结果赋值给该变量。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 10;
a -= 3; // 从a中减去3,并将结果7赋值给a;
std::cout << a;
}

4. 乘等赋值运算符(*=) :用于将一个变量的值乘以一个值,并将结果赋值给该变量。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
a *= 3; // 将a的值乘以3,并将结果15赋值给a
std::cout << a;
}

5. 除等赋值运算符(/=):用于将一个变量的值除以一个值,并将结果赋值给该变量。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 10;
a /= 3; // 将a的值除以3,并将结果3赋值给a
std::cout << a; }

6. 取模等赋值运算符 (%=) :用于计算两个值的余数,并将结果赋值给一个变量。例如:

点击查看代码
#include  <iostream>
int main()
{
int a = 10;
a %= 3; // 将a的值除以3的余数1赋值给a
std::cout << a;
}

**位运算符**
C++的位运算符用于对二进制位进行操作。以下是C++位运算符的介绍和使用:
1. 位与运算符(&):用于对两个二进制数进行按位与操作。只有当两个相应的二进制位都为1时,结果的相应位才为1。例如:

点击查看代码
#include  <iostream>
int main()
{
int a = 60; // 二进制表示为 0010 1100
int b = 13; // 二进制表示为 0000 1101
int c = a & b; // 结果为0000 1100,即十进制中的12
std::cout << c; }

2. 位或运算符(|):用于对两个二进制数进行按位或操作。只要两个相应的二进制位中有一个为1,结果的相应位就为1。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 60; // 二进制表示为0010 1100
int b = 13; // 二进制表示为0000 1101
int c = a | b; // 结果为0010 1101,即十进制中的61
std::cout << c;
}

3. 位异或运算符(^) :用于对两个二进制数进行按位异或操作。当两个相应的二进制位不同时,结果的相应位为1。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 60; // 二进制表示为0010 1100
int b = 13; // 二进制表示为0000 1101
int c = a ^ b; // 结果为0010 0001,即十进制中的49
std::cout << c;
}

4. 位非运算符(~):用于对一个二进制数进行按位非操作。当相应的二进制位为1时,结果的相应位为0;当相应的二进制位为0时,结果的相应位为1。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 60; // 二进制表示为0010 1100
int b = ~a; // 二进制表示为1101 0011,即十进制中的-61
std::cout << b;
}

tips:由于位运算符对整数进行低级操作,因此它们经常用于优化性能,特别是在处理网络数据、硬件编程和图形处理等场景。
**移位运算符**
C++中的移位运算符用于对二进制进行左移和右移操作。以下是C++移位运算符的介绍和使用:
1. 左移运算符(<<):用于将一个整数的二进制位向左移动指定的位数。
在左移操作中,左侧的空位将用0来填充。例如:

点击查看代码
#include  <iostream>
int main()
{
int a = 5; // 二进制表示为0000 0101
// 向左移动2位
int b = a << 2; // 结果为0001 0100,即十进制中的20
std::cout << b;
}

2. 右移运算符(>>):用于将一个整数的二进制位向右移动指定的位数。
在右移操作中,左侧的空位将根据该数的符合来填充。对于有符合整数,C++采用算术右移,即将最高位(符号位)复制到左侧的空位中。对于无符合整数,左侧的空位将用0来填充。例如:

点击查看代码
#include <iostream>
int main()
{
int a = 20; // 二进制数表示为0010 0100
// 向右移动2位
int b = a >> 2; // 结果为0000 0101 // 即十进制中的5
std::cout << b;
}

tips:使用移位运算符时需要注意数据类型的位数,确保在进行移位操作时不会导致数据溢出或丢失。移位运算符常用于性能敏感的代码中,如低级编程、图形处理、加密等场景。
**sizeof运算符**
sizeof是C++中非常有用的运算符,它用于获取数据类型或对象在内存中所占用的字节数。以下是sizeof运算符的介绍和使用:
基本语法:
sizeof(expression);
使用场景:
1. 获取基本数据类型的大小:例如,sizeof(int) 可以返回int类型在内存中占有的字节数。
2. 获取数组的总大小:例如,sizeof(array)可以返回数组的总字节大小。
3. 获取对象的大小:例如,sizeof(object)可以返回对象在内存中占用的字节数。
应用示例:

点击查看代码
#include <iostream>
int main()
{
int a = 5;
int b[10];
int *p = &a;
std::cout << "Size of int:"<< sizeof(int) <<"bytes\n" ; // 通常是4字节,具体取决于平台
std::cout << "Size of array:"<< sizeof(b) <<"bytes\n" ; // 返回整个数组的大小,通常是40字节。(假设int是4字节)
std::cout << "Size of pointer:"<< sizeof(p) <<"bytes\n" ; // 返回指针的大小,通常是8字节 (假设64位系统)
std::cout << "Size of object:"<< sizeof(a) <<"bytes\n" ; //返回对象的大小, 通常是4字节(假设int是4字节)
}

注意事项:
1. sizeof返回的是size_t类型,这是一种无符号整数类型。
2. sizeof不会计算动态分配的内存。例如,如果你使用new动态地分配了一个数组,那么sizeof将不会计算这部分内存。
3. 对于函数参数,sizeof返回的是参数的类型大小,而不是实际存储在内存中的变量大小。例如,如果函数接受一个指针作为参数,那么sizeof将返回指针的大小,而不是它所指向的数据大小。
**三目运算符**
C++的三目运算符是一种简结的if-else语句,用于根据条件选择两个值中的一个。它的语法如下:
condition ? value_if_true : value_if_false;
语法的condition是一个布尔表达式,如果它的值为true,则放回value_if_true的值;如果它的值为false,则返回value_if_false的值。示例代码如下:

点击查看代码
#include <iostream>
int main()
{
int x = 5;
std::cout << (x > 0 ? "x是正数" : "x不是正数") << std::endl;
}

三目运算符可以用于任何需要选择两个值的情况,不仅仅是if-else语句,还可以使用它来设置变量的值,示例代码如下:

点击查看代码
#include <iostream>
int main()
{
int a = 10;
int b = 12;
int c = (a > b ? a : b);
// 输出结果为12
std::cout<< c;
}

**逗号运算符**
逗号运算符在C++中的特殊的运算符,它允许你在一个语句中执行多个操作,但只返回最后一个操作的结果。逗号运算符的语法如下:
expression1,expression2,...,expressionN;
逗号运算符按照从左到右的顺序依次执行每个表达式,并返回最后一个表达式的值。每个表达式可以是任何合法的C++ 表达式,包括变量赋值、函数调用等,示例代码如下:

点击查看代码
#include  <iostream>
int main()
{
// for循环中初始化多个变量
for(int i = 0, j = 0; i < 10; i++,j--)
{
// do something
}
// 执行多个操作
int a = 5;
int b = 10;
int c = (a+=2,b--,a + b); // c的值为16
std::cout << c;
}

**域解析运算符**
C++中的域解析运算符(::) 用于指定类或命名空间的成员。它可以用于访问静态成员、常量成员和非静态成员。
域解析运算符的语法如下:
class_name::member_name;
语法的class_name是类名,member_name是成员名。关于域解析运算符的使用,将会在类或命名空间的内容再作详细讲述。

C++入门编程----C++运算符(8)的更多相关文章

  1. msp430入门编程05

    msp430中C语言的运算符和表达式 msp430中C语言的程序结构06 msp430中C语言的函数及实现07 msp430中C语言操作端口I/O10 msp430中C语言的模块化头文件及实现11 m ...

  2. Linux学习——shell编程之运算符

    shell编程之运算符 一:shell中常见算术运算符号和优先级 二:算术运算符 Shell 变量:是弱类型!不能进行加减乘除!比较麻烦! 例子 :shell变量弱类型 a=11 b=22 echo ...

  3. Storm实时计算:流操作入门编程实践

    转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践   Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...

  4. msp430入门编程50

    msp430中项目编程套路 msp430入门编程 msp430入门学习

  5. msp430入门编程47

    msp430中C语言的人机交互--菜单退出 msp430入门编程 msp430入门学习

  6. msp430入门编程17

    msp430中C语言的寄存器操作 msp430入门学习 msp430入门编程

  7. msp430入门编程27

    msp430中C语言开发工具调试程序 msp430入门学习 msp430入门编程

  8. msp430入门编程26

    msp430中C语言开发工具应用 msp430入门学习 msp430入门编程

  9. msp430入门编程25

    msp430中C语言开发环境搭建 msp430入门学习 msp430入门编程

  10. msp430入门编程24

    msp430中C语言的扩展--段的使用 msp430入门学习 msp430入门编程

随机推荐

  1. go中的sync.RWMutex源码解读

    读写锁 前言 什么是读写锁 看下实现 读锁 RLock RUnlock 写锁 Lock Unlock 问题要论 写操作是如何阻止写操作的 写操作是如何阻止读操作的 读操作是如何阻止写操作的 为什么写锁 ...

  2. Milvus 2.3.功能全面升级,核心组件再升级,超低延迟、高准确度、MMap一触开启数据处理量翻倍、支持GPU使用!

    Milvus 2.3.功能全面升级,核心组件再升级,超低延迟.高准确度.MMap一触开启数据处理量翻倍.支持GPU使用! 1.Milvus 2.3版本全部升级简介 Milvus 2.3.0 不仅包含大 ...

  3. 【链表】【python】力扣24. 两两交换链表中的节点【超详细的注释和解释】

    目录 说在前面的话 前言 一.题目(力扣24. 两两交换链表中的节点) 二.题目分析 实现完整代码(Python实现) 总结 说在前面的话 博主也好长一段时间没有更新力扣的刷题系列了,今天给大家带来一 ...

  4. GD库常用实例

      GD库常用实例 一.图片水印 1.实现步骤 打开原图(也叫操作的目标图片) 打开水印图(也叫水印来源图片) 使用 imagecopymerge 将小图合并至大图的指定位置 输出图片 销毁资源 2. ...

  5. 【求助】navicat导入monogdb数据报错

    navicat在进行mongodb数据导入时报错 Navicat Premium 版本 16.1.3 (64-bit) Windows 11 Unknown Internal Error (A7052 ...

  6. 23.2 SEH之异常处理--《Windows核心编程》结构化异常处理

    (structured exception handing)SEH 包含终止处理和异常处理.本章讨论异常处理.   当一个硬件或者软件异常被抛出的时候,操作系统会给我们程序一个查看异常类型的机会,并允 ...

  7. 5.字典--《Python编程:从入门到实践》

    5.1 字典   在 Python 中,字典是一系列键-值对.键不能重复,否则对应的值是后面一个. 5.1.1 键-值队的添加与修改 alien_0 = {'color': 'green', 'poi ...

  8. [Ngbatis源码学习] Ngbatis 源码学习之资源加载器 DaoResourceLoader

    Ngbatis 源码学习之资源加载器 DaoResourceLoader DaoResourceLoader 是 Ngbatis 的资源文件加载器,扩展自 MapperResourceLoader.本 ...

  9. NC18389 收益

    题目链接 题目 题目描述 小N是一家金融公司的项目经理.他准备投资一个项目,这个项目要融资L元,融资成功后会得到M元的利润.现在有n个客户.对于第i个客户,他有mi元钱.小N承诺假如最后筹够钱,会给这 ...

  10. Zabbix 配置笔记

    Zabbix Server 安装参考 https://www.cnblogs.com/clsn/p/7885990.html 安装脚本 #!/bin/bash #clsn #设置解析 注意:网络条件较 ...