一文详解C++中运算符的使用

目录
  • 一、算术运算符
  • 二、关系运算符
  • 三、逻辑运算符
  • 四、位运算符
  • 五、赋值运算符
  • 六、杂项运算符

一、算术运算符

运算符 描述
+ 把两个操作数相加
- 从第一个操作数中减去第二个操作数
* 把两个操作数相乘
/ 分子除以分母
% 取模运算符,整除后的余数
++ 自增运算符,整数值增加 1
自减运算符,整数值减少 1

通过下面的例子可以让我们更好的理解C++中的运算符的意义与使用方法。

#include <iostream>
using namespace std;

int main()
{
  int a = 66;
  int b = 33;
  int c;

  c = a + b;
  cout << "a + b 的值是 " << c << endl ;
  c = a - b;
  cout << "a - b 的值是 " << c << endl ;
  c = a * b;
  cout << "a * b 的值是 " << c << endl ;
  c = a / b;
  cout << "a / b 的值是 " << c << endl ;
  c = a % b;
  cout << "a % b 的值是 " << c << endl ;

  return 0;
}

输出:

a + b 的值是 99
a - b 的值是 33
a * b 的值是 2178
a / b 的值是 2
a % b 的值是 0

注意:需要知道a++和++a的区别(a–一样)

a++ :a先进行赋值,然后再进行++运算。

++a :a首先进行++运算,然后赋值给a。

下面的代码可以更好的展示他们两个的关系:

#include <iostream>
using namespace std;

int main()
{

  int z = 1;
  cout << z++ << endl;

  int h = 1;
  cout << ++h;

  return 0;
}

输出:

1
2

二、关系运算符

运算符 描述
== 检查两个操作数的值是否相等,如果相等则条件为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。
<= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。
>= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。
#include <iostream>
using namespace std;

int main()
{
  int a = 21;
  int b = 10;
  int c ;

  if( a == b )
  {
    cout << "a 等于 b" << endl ;
  }
  else
  {
    cout << "a 不等于 b" << endl ;
  }
  if ( a < b )
  {
    cout << "a 小于 b" << endl ;
  }
  else
  {
    cout << "a 不小于 b" << endl ;
  }
  if ( a > b )
  {
    cout << "a大于 b" << endl ;
  }
  else
  {
    cout << "a 不大于 b" << endl ;
  }

  return 0;
}

输出:

a 不等于 b
a 不小于 b
a大于 b

下面的代码可以让我们更好的理解逻辑运算符:

#include <iostream>
using namespace std;

int main()
{
  int a = 10;
  int b = 20;
  int c = 30;
  int d = 100;

  if( a == b  || c < d)
    cout << "6666" << endl;
  else
    cout << "66-----66" << endl;

  if( a < b  && b < c && d < c)
    cout << "7777" << endl;
  else
    cout << "77-----77" << endl;

  if( !(a == b  || c == d))
    cout << "8888" << endl;
  else
    cout << "88-----88" << endl;
  return 0;
}

输出:

6666
77-----77
8888

三、逻辑运算符

运算符 描述
&& 称为逻辑与运算符。如果两个操作数都 true,则条件为 true。
丨丨 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。
称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。

四、位运算符

p q p&q p丨q p^q
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
  • &:表示位与操作
  • 丨:表示位或操作
  • ^ :表示异或操作

五、赋值运算符

运算符 描述
= 简单的赋值运算符,把右边操作数的值赋给左边操作数
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数
<<= 左移且赋值运算符
>>= 右移且赋值运算符
&= 按位与且赋值运算符
^= 按位异或且赋值运算符
丨= 按位或且赋值运算符

六、杂项运算符

sizeof-----sizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。

Condition ? X : Y-----如果 Condition 为真 ? 则值为 X : 否则值为 Y。

.(点)和 ->(箭头)-----成员运算符用于引用类、结构和共用体的成员。

Cast-----强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。

&------指针运算符 & 返回变量的地址。例如 &a; 将给出变量的实际地址。

*------指针运算符 * 指向一个变量。例如,*var; 将指向变量 var。

到此这篇关于一文详解C++中运算符的使用的文章就介绍到这了,更多相关C++运算符内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++算术运算符与类型转换

    目录 1.算术运算符 2.优先级 3.类型转换 初始化和赋值时的转换 使用花括号进行转换 4.表达式中转换 5.强制类型转换 1.算术运算符 C++当中提供5种基础的算术运算符:加法.减法.乘法.除法和取模. 我们来看下代码: int a = 10, b = 3; cout << a + b << endl; // 13 cout << a - b << endl; // 7 cout << a * b << endl; // 30

  • C++基础入门之运算符

    目录 1. 算术运算符 2. 赋值运算符 3. 比较运算符 4. 逻辑运算符 总结 1. 算术运算符 2. 赋值运算符 3. 比较运算符 4. 逻辑运算符 总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

  • C++中的运算符和表达式

    目录 (1)算术表达式 (2)赋值运算符 (3)逗号运算符 (4)关系运算符 (5)三元表达式 (6)sizeof函数 (7)数据类型转换 (7.1)显式转换 (7.2)隐式转换 (8)总结 在编程语言中“表达式”可以近似于“公式”,也就是按照自己的预期进行某种计算,表达式由运算符合操作数等构成.C++中包含单目(一元)运算符.双目(二元)运算符和三目(三元)运算符,相应的构成了多种表达式.运算符具有优先级和结合性,优先级指先后计算次序,结合性指同级运算符时按照自左向右还是自右向左进行计算. (

  • 详解C++编程中运算符的使用

    C++的运算符十分丰富,使得C++的运算十分灵活方便.例如把赋值号(=)也作为运算符处理,这样,a=b=c=4就是合法的表达式,这是与其他语言不同的.C++提供了以下运算符: 算术运算符 +(加)  -(减)  *(乘)  /(除)  %(整除求余)  ++(自加)  --(自减) 关系运算符 >(大于)  <(小于)   ==(等于)  >=(大于或等于)  <=(小于或等于)  !=(不等于) 逻辑运算符 &&(逻辑与)  ||(逻辑或)   !(逻辑非) 位运

  • C++的运算符你真的了解吗

    目录 前言 1 算术运算符 2 赋值运算符 3 比较运算符 4 逻辑运算符 总结 前言 运算符的作用:用于执行代码的运算 主要有: 1 算术运算符 用于处理四则运算 对于前置递增:将递增运算前置,使变量先加一,再进行表达式运算. 对于后置递增:将递增运算后置,使变量先进行表达式运算,再加一. #include<iostream> using namespace std; int main() { //1.前置递增:先加一,再进行表达式运算 int a = 10; int b = ++a * 1

  • 一文详解C++中运算符的使用

    目录 一.算术运算符 二.关系运算符 三.逻辑运算符 四.位运算符 五.赋值运算符 六.杂项运算符 一.算术运算符 运算符 描述 + 把两个操作数相加 - 从第一个操作数中减去第二个操作数 * 把两个操作数相乘 / 分子除以分母 % 取模运算符,整除后的余数 ++ 自增运算符,整数值增加 1 – 自减运算符,整数值减少 1 通过下面的例子可以让我们更好的理解C++中的运算符的意义与使用方法. #include <iostream> using namespace std; int main()

  • 一文详解Java中流程控制语句

    目录 概述 判断语句 if if...else if..else if...else if语句和三元运算符的互换 选择语句 switch case的穿透性 循环语句 for while do...while for 和 while 的小区别 跳出语句 break continue 死循环 嵌套循环 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序

  • 一文详解JS中的事件循环机制

    目录 前言 1.JavaScript是单线程的 2.同步和异步 3.事件循环 前言 我们知道JavaScript 是单线程的编程语言,只能同一时间内做一件事,按顺序来处理事件,但是在遇到异步事件的时候,js线程并没有阻塞,还会继续执行,这又是为什么呢?本文来总结一下js 的事件循环机制. 1.JavaScript是单线程的 JavaScript 是一种单线程的编程语言,只有一个调用栈,决定了它在同一时间只能做一件事.在代码执行的时候,通过将不同函数的执行上下文压入执行栈中来保证代码的有序执行.在

  • 一文详解Java中的类加载机制

    目录 一.前言 二.类加载的时机 2.1 类加载过程 2.2 什么时候类初始化 2.3 被动引用不会初始化 三.类加载的过程 3.1 加载 3.2 验证 3.3 准备 3.4 解析 3.5 初始化 四.父类和子类初始化过程中的执行顺序 五.类加载器 5.1 类与类加载器 5.2 双亲委派模型 5.3 破坏双亲委派模型 六.Java模块化系统 一.前言 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型,这个过程

  • 一文详解Python中生成器的原理与使用

    目录 什么是生成器 迭代器和生成器的区别 创建方式 生成器表达式 基本语法 生成器函数 yield关键字 yield和return yield的使用方法 生成器函数的基本使用 send的使用 可迭代对象的优化 总结 我们学习完推导式之后发现,推导式就是在容器中使用一个for循环而已,为什么没有元组推导式? 原因就是“元组推导式”的名字不是这样的,而是叫做生成器表达式. 什么是生成器 生成器表达式本质上就是一个迭代器,是定义迭代器的一种方式,是允许自定义逻辑的迭代器.生成器使用generator表

  • 一文详解Java中Stream流的使用

    目录 简介 操作1:创建流 操作2:中间操作 筛选(过滤).去重 映射 排序 消费 操作3:终止操作 匹配.最值.个数 收集 规约 简介 说明 本文用实例介绍stream的使用. JDK8新增了Stream(流操作) 处理集合的数据,可执行查找.过滤和映射数据等操作. 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询.可以使用 Stream API 来并行执行操作. 简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式. 特点 不是数据结构

  • 一文详解Python中PO模式的设计与实现

    目录 什么是PO模式 PO 三层模式 PO 设计模式的优点 将改写的脚本转为PO设计模式 构建基础的 BasePage 层 构建首页的 Page 层(HomePage) 构建登录页的 Page 层(LoginPage) 构建 首页 - 订单 - 支付 流程的 Page 层(OrderPage) PO 设计模式下测试Case的改造 在使用 Python 进行编码的时候,会使用自身自带的编码设计格式,比如说最常见的单例模式,稍微抽象一些的抽象工厂模式等等… 在利用 Python 做自动化测试的时候,

  • 一文详解C#中方法重载的底层玩法

    目录 一:为什么 C 不支持 二:C++ 符号表突破 三:C#如何实现突破 最近在看 C++ 的方法重载,我就在想 C# 中的重载底层是怎么玩的,很多朋友应该知道 C 是不支持重载的,比如下面的代码就会报错. #include <stdio.h> int say() { return 1; } int say(int i) { return i; } int main() { say(10); return 0; } 从错误信息看,它说 say 方法已经存在了,尴尬... 一:为什么 C 不支

  • 一文详解JavaScript中prototype的使用

    目录 prototype初步认识 函数有prototype属性,函数创建的对象没有 获得当前对象的属性 父和子的扩展 子的proto和prototype的区别 扩展得到的东西到底从哪来的 prototype初步认识 在学习JavaScript中,遇到了prototype,经过一番了解,知道它是可以进行动态扩展的 function Func(){}; var func1 = new Func; console.log(func1.var1) //undefined Func.prototype.v

  • 一文详解Python中的重试机制

    目录 介绍 1. 最基本的重试 2. 设置停止基本条件 3. 设置何时进行重试 4. 重试后错误重新抛出 5. 设置回调函数 介绍 为了避免由于一些网络或等其他不可控因素,而引起的功能性问题.比如在发送请求时,会因为网络不稳定,往往会有请求超时的问题. 这种情况下,我们通常会在代码中加入重试的代码.重试的代码本身不难实现,但如何写得优雅.易用,是我们要考虑的问题. 这里要给大家介绍的是一个第三方库 - Tenacity (标题中的重试机制并并不准确,它不是 Python 的内置模块,因此并不能称

随机推荐