首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

C++程序设计基础学习笔记:(2)计算:从数据运算开始,数据简单运算

  • 25-03-03 17:24
  • 3373
  • 11181
blog.csdn.net

相关博客目录

C++程序设计基础学习笔记:(1)初识C++语言:从认识变量和常量开始,数据的表示
C++程序设计基础学习笔记:(2)计算:从数据运算开始,数据简单运算
C++程序设计基础学习笔记:(3)分支结构:无处不在的抉择
C++程序设计基础学习笔记:(4)循环结构:周而复始,求同存异
C++程序设计基础学习笔记:(5)数组:实现算法的利器
C++程序设计基础学习笔记:(6)指针:所向披靡的“金箍棒” 魂
C++程序设计基础学习笔记:(7)函数:面向过程的基础
C++程序设计基础学习笔记:(8)文件:让数据流动起来
C++程序设计基础学习笔记:(9)以人为本:用类与对象诠释现实世界
C++程序设计基础学习笔记:(10)从生物遗传说起,取其精华——继承与多态

第2章 计算:从数据运算开始,数据简单运算

2.1 表达式和算术运算

image-20210331221029587

解决问题

运算符和表达式怎么表示?
表达式运算执行顺序如何计算?
算术运算与数学比较有哪些特别?

由运算符和运算对象组成的式子称为表达式。

表达式的结果除了确定的值之外,还有确定的数据类型。

表达式的运算对象可以是常量、变量、函数调用和嵌套的表达式等。

C++运算符常用分类

image-20210331220216254

表达式运算顺序

当表达式中出现不同类型的运算符时, 如何确定运算顺序?

根据运算符的优先级(Order of Precedence) —从高到低运算C++运算符优先级分为18级,1级最高,18级最低

当表达式中出现运算符的优先级相同时, 如何确定运算顺序?

利用运算符的结合性(Associativity)
右结合—从右向左计算,如:单目运算符、赋值运算符、条件运算符
左结合—从左向右计算,如:双目运算符其结合性为从左向右
巧妙使用圆括号改变运算顺序——从内往外运算

算术运算符优先级

先乘除求余,后加减,级别相同的从左向右逐个运算
圆括号可以改变优先级
%和*,/ 优先级别相同

image-20210331220522075

算术运算及其描述

算术运算中,乘法运算符不能省略

除数运算时,注意加括号的使用

用函数表达复杂算术运算

image-20210331220851259

针对整型数据的求余用%

image-20210331220719365

2.2 自增自减和赋值运算

image-20210331221818604

赋值运算:

变量 = 表达式;
  • 1

问题:赋值运算符和数学中的等号有何区别?

1.有方向性,右边计算的结果赋值给左边的变量
2.左边和右边的数据类型应一致;
3.左边和右边的数据类型如果不一致,右边的数据类型转换成左边的数据类型

复合运算符及其优先级

自增和自减

前置(前缀式)和后置(后缀式)运算:
++i或–i:前置是先增减后引用,即先对变量自加或自减,用新的值参与其他运算;
i++或i–:后置则是先引用后增减,即用变量原来的值参与其他运算,然后再对变量进行自加或自减。

image-20210331221841373

2.3关系运算和逻辑运算

image-20210331222719190

关系运算:对运算对象的“大小”关系的判断;
比较运算:其结果是成立或不成立,也就是为真或假

关系运算符

关系运算的优先级

逻辑运算

逻辑运算:表达、判断多个条件之间的关系;单个变量或常量也可作为条件

逻辑运算的短路求值:如果判断了前面的条件,已经能得到表达式的结果,就不再计算后面的条件

image-20210331222230956

逻辑运算符的优先级

image-20210331222313288

2.4特殊运算符

字节数运算符sizeof()

image-20210331222827235

条件运算符?:

逗号运算符

优先级和运算符

image-20210331223844739

2.5混合运算和类型转换

image-20210331225555245

隐式转换:运算转换

所谓隐式转换,是指不需要用户干预,编译器进行的类型转换。

转换的时机

运算转换:不同数据类型混合运算时
赋值转换:把一个值赋给与其数据类型不同的变量时
输出转换:输出时转换成指定的输出格式

运算转换规则

不同类型的数据运算时,先转换成同一类型再运算
赋值时,右边的数据转换成左边变量的数据类型
输出时,按照cout指定格式转换
自定义对象 子类对象可以隐式的转换为父类对象

转换原则:确保计算值的精度。转换后尽可能不丢失有效数字。

字节少的向字节多的转换
精度低的向精度高的转换
有符号向无符号转换

隐式转换:赋值转换

image-20210331225424901

显式转换

程序中明确标记转换的类型,就是显式转换,也就是强制类型转换

格式

<类型> (<表达式>)
(<类型>) <表达式>
  • 1
  • 2

image-20210331225546581

2.6 程序调试和变量跟踪

程序调试的任务和目的

程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试和修错,修正语法错误和运行错误等错误的过程。根据所发现的错误,进一步诊断,找出原因和具体的位置进行修正。
是程序发开人员的任务,调试的目的是对程序中错误修正,为了说明程序是正确的,是一个排错的过程。调试分静态调试和动态调试

程序调试

image-20210331225735811

语法错误(编译时产生):

错误(error):无法成功编译,需修改正确才能生成目标文件;
警告(warning):可运行,但结果可能不正确;

连接错误(连接或生成时产生):

程序中引用了不存在的函数。
编译环境有问题,导致出错。

运行错误:

异常错误:在运行时产生的错误,如除法中除数为零,空间不足等;
逻辑错误:程序可运行,但出现结果与预期设计不一致的错误;

国计算机等级考试二级C++语言程序设计考试大纲(2018 年版)

注:本文转载自blog.csdn.net的呆呆象呆呆的文章"https://blog.csdn.net/qq_41554005/article/details/115363704"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top