C++学习笔记六:运算符(五种基本运算操作,优先级和结合性)
这一章对操作符进行简单的总结:
1.五种基本运算类型:加减乘除,取余
add, substract, multiply, divide, modulus
int number1{2};
int number2{7};
int result = number1 + number2;
result = number2 - number1 ;
result = number1 - number2;
result = number1 * number2;
result = number2 / number1; // result:3
result = number2 % number1;
注意:两个int类型相除只会得到int类型的取整
2.优先级与结合性
https://en.cppreference.com/w/cpp/language/operator_precedence
3.前置和后置的++与--
后置的++/--先输出或者赋值原变量,之后再改变原变量
前置的++/--先改变原变量,再做改变后变量的赋值和输出
std::cout << "======Postfix increment and decrement======"<< std::endl;
value = 5;
std::cout << "The value is (incrementing) : " << value++ << std::endl; // 5
std::cout << "The value is : " << value << std::endl; // 6
std::cout << std::endl;
value = 5; //Reset value to 5
std::cout << "The value is (decrementing) : " << value-- << std::endl; //5
std::cout << "The value is : " << value << std::endl; // 4
std::cout << "======Prefix increment and decrement======"<< std::endl;
value = 5;
++value;
std::cout << "The value is (prefix++) : " << value << std::endl; // 6
value = 5;
std::cout << "The value is (prefix++ in place) : " << ++value << std::endl; // 6
std::cout << std::endl;
4.复合运算符
复合运算符同时完成运算和赋值的操作。
int value {45};
value +=5;
value -=5;
value *=2;
value /= 3;
value %= 11;
5.比较运算符
int number1 {20};
int number2 {20};
std::cout << std::boolalpha ; // Make bool show up as true/false instead of 1/0
//Stress the need for parentheses here
std::cout << "number1 < number2 : " << (number1 < number2) << std::endl;
std::cout << "number1 <= number2 : " << (number1 <= number2) << std::endl;
std::cout << "number1 > number2 : " << (number1 > number2) << std::endl;
std::cout << "number1 >= number2 : " << (number1 >= number2) << std::endl;
std::cout << "number1 == number2 : " << (number1 == number2) << std::endl;
std::cout << "number1 != number2 : " << (number1 != number2) << std::endl;
在输出比较结果的时候记得加上括号。<<的优先级高于比较运算符。
6.逻辑运算符
AND && 全真才真
OR || 一真即真
NOT !
这三个逻辑运算符联合使用记得优先级:NOT>AND>OR
bool a {true};
bool b {true};
bool c {false};
std::cout << std::boolalpha;
std::cout << (!a || b && c) << std::endl;
// !a: false, b && c: false, result: false
C++学习笔记六:运算符(五种基本运算操作,优先级和结合性)的更多相关文章
- iOS学习笔记(十五)——数据库操作(SQLite)
SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的 ...
- Java框架spring 学习笔记(十五):操作MySQL数据库
新建一个工程,添加对数据库的支持 下载mysql驱动包 mysql-connector-java-5.1.7-bin.jar,快捷键ctrl+alt+shift+s,添加jar包到工程 编写JdbcT ...
- 【转】iOS学习笔记(十五)——数据库操作(SQLite)
SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的 ...
- python学习笔记(十五)python操作数据库
1.连接mysql,ip,端口号,密码,账号,数据库 2.建立游标 3.执行sql 4.获取结果 5.关闭连接,关闭游标 游标打开仓库的大门: import pymysql conn=pymysql. ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Typescript 学习笔记六:接口
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Linux学习笔记(六) 进程管理
1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- VSTO学习笔记(十五)Office 2013 初体验
原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用.从此开始VSTO系列全面转向Office 201 ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
随机推荐
- 通过Scrum实现最大生产力的五种方法
在数字化.信息化.智能化蓬勃发展的今天,敏捷开发和Scrum已成为重塑项目管理的重要方式. 敏捷是一种体现不同方法的思维方式,包括了Scrum,看板,极限编程(XP).精益开发等众多框架. Scrum ...
- 《SQLi-Labs》02. Less 6~10
@ 目录 索引 Less-6 题解 原理 Less-7 题解 Less-8 题解 Less-9 题解 原理 Less-10 题解 sqli.开启新坑. 索引 Less-6:布尔盲注,字符型[" ...
- QA|新版Pycharm如何关闭和开启自动补全功能?|Pycharm|工具相关
自动补全开启状态: 自动补全关闭状态: 建议:新学者建议开启自动补全,这样可以把各个函数方法记忆的更加深刻!
- Htttpclien循环自动生成图片,同时发送参数和文件,模拟http的post请求
package org.jeecg.modules.bussiness.PostTests; import com.sun.tools.internal.xjc.reader.xmlschema.bi ...
- fprintf
fprintf 是一个标准C库函数,用于将格式化的输出写入到指定文件流中.它的函数原型如下: int fprintf(FILE *stream, const char *format, ...); 参 ...
- Go 多版本管理工具
Go 多版本管理工具 目录 Go 多版本管理工具 一.go get 命令 1.1 使用方法: 二.Goenv 三.GVM (Go Version Manager) 四.voidint/g 4.1 安装 ...
- 每天5分钟复习OpenStack(三)
每天5分钟复习OpenStack(三) 为什么要拉起kvm 虚拟机要熟悉这些操作? 作为一个运维工程师,将来有大量的时间是在制作镜像,镜像的制作就是在kvm虚拟化环境拉起kvm 管理的虚拟机的过程,安 ...
- cv2 数学基础---矩阵微分
矩阵微分基础知识 定义 重要结论 应用 定义 (1) 向量对标量求导 矩阵对标量求导 我们可以看到上述求导过程实际上就是不同函数对变量求导,然后按照向量或者矩阵的形式排列,注意这里结果的结构应该与函数 ...
- 新手面对安卓6.0以上的版本时出现一个关于文件权限检测的问题,报错为:“无法解析符号 'checkSelfPermission'”,解决办法
[[注意]:这只是笔者在遇到这个问题时的解决方法,如果对您毫无帮助,请自寻他法!!!] 面对新手:在简单做一个音乐播放程序时,如果面对安卓6.0以上的版本,就会出现一个关于文件权限检测的问题,报错为: ...
- 【KMP】border 题解
题目描述 输入 输出 样例输入 abaabaa 样例输出 17 样例解释: f[2][a] = 1 f[3][a] = 1 f[4][a] = 1 f[4][b] = 2 f[5][a] = 1 f[ ...