当前课程知识点:C++语言程序设计基础 > 第2章 C++简单程序设计(一) > 运算与表达式 > 算术运算与赋值运算
算术运算与赋值运算
l 基本算术运算符
n + - * /(若整数相除,结果取整)
n %(取余,操作数为整数)
l 优先级与结合性
n 先乘除,后加减,同级自左至右
l ++, --(自增、自减)
n 例:i++; --j;
l 将值赋给变量
l 赋值运算符“=”
l 赋值表达式:
n 用赋值运算符连接的表达式
n 例:
n=5
n = n + 5
n 表达式的值
赋值运算符左边对象被赋值后的值
n 表达式的类型
赋值运算符左边对象的类型
l 复合的赋值运算符
n +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
n 例
a += 3 等价于 a = a + 3
x *= y + 8 等价于 x = x * (y + 8)
大家好
欢迎继续学习C++语言程序设计
现在我给大家介绍
算术预算符与算术表达式
算术运算是最基本的运算
所以我们首先要来学习
在程序中怎么样做算术运算
算术运算我们知道有加减乘除
在程序中呢 也是这样
C++中有加减乘除这些运算符
要注意除法有一点点特殊
如果是两个整数相除的话
它的结果取整
商的小数部分就要丢掉了
还有一个取余的运算符
那么也是针对整数的
两个整数做取余运算呢
是只取那个余数 不取那个商
取余运算呢
属于乘除法运算之类的
它是跟除法是一类的
运算优先级还是我们熟悉的
先乘除 后加减
同级运算自左向右
除此而外算术运算符在C++中
还有两个非常好用的 特殊的
就是自增运算符和自减运算符
自增自减运算符
又分为前置的和后置的
所谓前置的自增自减运算符呢
就是首先进行加1或者减1运算
把这个变量自己的值增1
然后变量继续参与其他的运算
那么后置的自增自减运算符
是先将这个变量里面的值
取一个副本出来
如果它需要参与
更大范围的运算的话用这个
然后自己再增1
这是有差别的
后面我们通过例题会看到
我们知道当定义了一个变量以后
在定义的时候
可以给它进行初始化给它值
那么除了这种方式以外呢
在程序的运行过程中
变量的值它是可以变的
那怎么让它变化呢
怎么更新它的值呢
这就需要赋值
也就是说把一个值装到变量
所代表的存储空间中去
这个赋值操作
在C++中是通过赋值运算符
来完成的
就是像数学中的等于符号一样
但是它并不表示相等关系
它表示一个赋值的关系
用赋值运算符连接起来
左边右边两个表达式
左边是一个变量
右边是一个
可以计算出值的表达式
把它们连接起来
这就构成了一个赋值表达式
注意在C++中是没有赋值语句的
赋值是用赋值表达式完成的
下面呢给大家详细介绍
赋值运算符与赋值表达式的语法
现在我们来看
这个赋值运算符的语法
在C++中赋值是一种运算
所以大家看这一个离子
将n加上5再赋值给n
那么这个赋值既然是一个运算符
那么这个赋值表达式
它的结果会是什么呢
它的结果值就是我们刚刚赋到
赋值运算符左边
这个n 变量里面的值
然后这个赋值运算符
它的类型是什么呢
它的类型就是左边表达式的类型
现在我们来看
十种复合赋值运算符
复合赋值运算符
也是C++的一个特色的运算符
我们看到这里面有+= -=
这是什么意思呢
我们看一下底下的例子就清楚了
比如说我们写a+等于3
那意思就是将a和3相加
再赋值回a里面去
也可以理解为
将3加到变量a上面去
那么如果稍微复杂一点的表达式
比如说看我们底下这个离子
x×等于y+8
那么这个时候可能看着
就有点费解了
那理解它的方式还是一样的
将变量x放在赋值运算符的左边
然后赋值一个x
到赋值运算符的右边
去跟原来赋值运算符右边的
这个y+8相乘
所以这样的表达式呢
我们看起来比较费解
但是这是从C语言继承来的
这种特色的运算符
叫复合赋值运算符
也就是说将运算符
和赋值运算符复合起来
那么还有其他的复合赋值运算符
比如说移位 位运算等等这些
在我们后面讲了相应运算的时候
大家就能够理解了
如果大家写程序的时候
不喜欢用复合赋值运算符
完全可以不用
但是你要能够看得懂
-导学
--第1章导学
-计算机系统简介
--计算机系统简介
--计算机系统简介 测试题
-计算机语言和程序设计方法的发展
--计算机语言和程序设计方法的发展 测试题
-面向对象的基本概念
--面向对象的基本概念 测试题
-程序的开发过程
--程序的开发过程
--程序的开发过程 测试题
-信息的表示和储存
--计算机的数字系统
--数据的编码表示
--信息的表示和储存 测试题
-实验指导
-导学
--第二章导学
-C++语言概述
--C++语言概述 测试题
-基本数据类型、常量、变量
--程序举例
--基本数据类型、常量、变量 测试题
-运算与表达式
--运算与表达式 测试题
-实验二:简单程序设计(上)
-数据的输入和输出
--数据的输入和输出
--数据的输入和输出 测试题
-选择结构
--if语句
--switch语句
--选择结构 测试题
-循环结构
--for语句
--循环结构 测试题
-自定义类型
--自定义类型
--自定义类型
-第2章小结
--第二章小结
-实验二:C++简单程序设计(下)
-导学
--导学
-函数定义
--函数定义
--函数定义 测试题
-函数调用
--例3-2
--例3-3
--例3-4
--例3-5
--例3-6
--函数调用 测试题
-嵌套与递归
--例3-9
--例3-10
--嵌套与递归 测试题
-函数的参数传递
--函数的参数传递
--函数的参数传递 测试题
-引用类型
--引用类型 测试题
-含有可变参数的函数
--含有可变参数的函数 测试题
-内联函数
--内联函数 测试题
-constexpr函数
--CONSTEXPR函数课后习题
-带默认参数值的函数
--带默认参数值的函数 测试题
-函数重载
--函数重载 测试题
-C++系统函数
--C++系统函数习题
-第3章小结
--第三章小结
-实验三(上)函数的应用
-实验三(下)函数的应用
-导学
--导学
-面向对象程序的基本特点
--面向对象程序的基本特点 测试题
-类和对象
--类和对象的定义
--类和对象 测试题
-构造函数
--构造函数基本概念
--委托构造函数
--复制构造函数
--构造函数 测试题
-析构函数
--析构函数
--析构函数 测试题
-类的组合
--类的组合
--类的组合程序举例
--前向引用声明
--类的组合 测试题
-UML简介
--UML简介
--UML简介课后习题
-结构体与联合体
--结构体与联合体 测试题
-枚举类
--枚举类
--枚举类 测试题
-第4章小结
--第四章小结
-实验四(上)
--实验四(上)
-实验四(下)
--实验四(下)
-导学
--导学
-标识符的作用域与可见性
--标识符的作用域与可见性 测试题
-对象的生存期
--对象的生存期
--对象的生存期 测试题
-类的静态成员
--类的静态成员 测试题
-类的友元
--类的友元 测试题
-共享数据的保护
--共享数据的保护 测试题
-多文件结构和预编译命令
--多文件结构和预编译命令 测试题
-第5章小结
--小结
-实验五
--实验五
-导学
--导学
-数组的定义与初始化
--数组的定义与使用
--一维数组应用举例
--数组的定义与初始化 测试题
-数组作为函数的参数
--数组作为函数的参数 测试题
-对象数组
--对象数组
--对象数组 测试题
-基于范围的for循环
-指针的定义和运算
--指针的定义和运算 测试题
-综合实例
--综合实例
-实验六(上)
--实验六上
-指针与数组
--指针数组
--指针与数组 测试题
-指针与函数
--指针类型的函数
--指向函数的指针
--指针与函数 测试题
-对象指针
--对象指针
--对象指针 测试题
-动态内存分配
--动态内存分配 测试题
-智能指针
--智能指针
-vector对象
--vector对象
--vector对象 测试题
-对象复制与移动
--移动构造
--对象复制与移动 测试题
-字符串
--C风格字符串
--string类
--字符串 测试题
-第6章小结
--第六章小结
-综合实例
--综合实例
-实验六(下)
--实验六(下)