初学C++——清华大学 郑莉老师的课第一、二章笔记
第一章
1. C++程序开发过程:
- 算法与数据结构设计
- 源程序编辑
- 编译
- 连接(把不同的模块合在一起,形成可执行的程序)
- 测试(各种数据进行测试)
- 调试
怎么把应用程序设置成一个发布版本?(能够win64/32独立运行)
->在生成发布版本之前,需要清除早期生成过程中创建的中间文件和输出文件,确保其是最终版本。
->点击“生成”菜单中的”清理解决方案“选项,在完成清理工作之后,在工具栏把这个生成的配置从Debug改为release版本,再点击菜单中”生成“的”生成解决方案“选型,即可。
信息的存储单位:
- 位(bit, b):数据的最小单位,表示一位二进制信息
- 字节(bite, B):八位二进制数字组成的(1 byte=8 bit)
- 千字节 1KB=1024B
- 兆字节 1MB=1024K
- 吉字节 1GB=1024M
(对于负整数而言)
原码:
“符号——绝对值”表示的编码,0表示“+”号,1表示“-”号
缺点:
1.零的表示不唯一
2. 进行四则运算时,符号位必须单独处理,且规则复杂。
补码:
1. 零的表示唯一
2. 符号位可以作为数值参加运算
怎么求补码?
->借助“反码”
反码:除了符号位不变,其他位翻转一下。
(正整数的原码、反码、补码都是它自己。)这些编码规则解决的都是怎么表示负号。
负数补码=反码+1;
正数补码=原码;
两个负数的补码相加,把符号位顶出去了,变成正数了。(两个正数相加,变负数)
->这个表示运算结果溢出了。
实数的表示:
定点方案(小数点固定):特别大的数特别小的数没办法表示(一般不用)
浮点方案(即浮点数);
字符数据:
编码表示。ASCII。中国国家标准的汉字表示。
第二章
- 基本数据类型
整数类型: int(int字节数与机器字长相关)
按符号分: unsigned int(无符号)即为非负数
按长度分: short、long、long long
字符类型:char(容纳单个字符的编码)
浮点数类型(实数类型):float(单精度)、double(双精度)、long double(扩展精度)
字符串类型:双引号存放的字符串(C风格),在C++里,有string类存放字符串
布尔类型:bool(true、false)
2. 整数类型(二进制、十进制、八进制、十六进制)
相互之间的转化。
3. 字符串常量(在末尾有一个'\0'作为结束标记)
“a”: a \0
'a': a
4. 变量
定义变量的方式使用内存空间,同时也可以初始化。如果不初始化的话,变量默认初始值是根据在程序中的位置决定的。
所以,定义变量时,初始化是个很好的习惯。
C++初始化的方式:
int a=0;
int a(0);
int a={0};// int a{0};初始化列表的方式。
初始化列表的方式是使用大括号的初始化方式,这种初始化不允许信息的丢失。
比如,用double类型去初始化int变量,小数部分就会丢失了。
5. 符号常量
定义: const 数据类型说明符 常量名=常量值 or 数据类型说明符 const 常量名=常量名
注意:这种访问只能用不能修改,所以必须在定义就给初始值。
const double PI=3.14;
6. SIZEOF运算
有些类会隐含生成一些你没定义但是也存在的数据成员,用sizeof可以算出一个类型/变量的字节数。
sizeof(short);
sizeof x;
7. 位运算
“按位与”
8. 类型转换
有隐含转换,也有显式转换(建议使用)
语法形式:
类型转化操作符<类型说明符>(表达式)
类型转化操作符:const_cast/dynamic_cast/reinterpret_cast/stacti_cast(用的比较多)
int(z),(int)z,static_cast<int>z;//都可以
9. 运行时错误主要有两类原因:类型错误和逻辑错误(F11:逐语句运行,F10:逐过程运行(只关心每步执行的结果))
10. 对于错误信息,建议记录中文含义,根本原因以及解决方法。
11.数据的输入/输出:输入输出是信息流的操作
预定义的插入符和提取符:
“<<”插入符,“>>”提取符
12. for语句的另外一种形式:(范围for循环)
for(声明:表达式), 用于遍历一个容器中的序列.
13. 给类型取个别名 typedef
typedef 已有类型名 新类型名 tpyedef double Area, Volume
C++新加入的: uisng 已有类型名 新类型名 using Area=double
14. 自定义类型:枚举类型(用户的自定义类型)
表示一个星期的七天?怎么表示?——>如果把星期规定为整数类型,那用户输入8,16都是合法输入。用枚举可以解决这个问题。列出整数的子集,定义一个新类型:0,1,2,3,4,5,6。(用枚举的方式定义的)
enum Weekday { SUN,MON,TUE,WED,THU,FRI,SAR}
默认情况:SUN=0,MON=1,...,SAR=6;
以上是C++从C继承过来的,不限定作用域的枚举类型。(C++还可以定义限定作用域的枚举类型,后面会有介绍。)
不限定作用于的枚举类型说明:
1)枚举元素是常量,不能对他们赋值。
比如:enum Weekday { SUN,MON,TUE,WED,THU,FRI,SAR}
不能写下以下的赋值语句:SUN=0;
2)枚举元素有默认值,它们依次为0,1,2...
3)也可以在申明时另行指定枚举元素的值
比如:enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAR}
那么,TUE会被自动为2,3,4,5,6.
4)枚举值可以进行关系运算。
5)整数不能赋值给枚举变量,如果需要将整数赋值给枚举变量,应该进行强制类型转化。
例子:
#include<iostream>
using namespace std;
enum GameReult { WIN, LOSE, TIE, CANCLE };int main()
{GameResult result;//定义枚举类型变量enum GameReult omit = CANCLE; //定义枚举类型变量,两种都可以。for (int count = WIN; count <= CANCLE; count++) //枚举常量值给整数变量赋值是可以的,枚举类型可以和int类型比较大小{result = GameReult(count);//先进行强制类型转化,因为整数不能给枚举类型赋值if (result == omit)cout << "The game was cancelled" << endl;else{cout << "The game was played";if (result == WIN) cout << "and we won!";if (result == LOSE) cout << "and we lose.";cout << endl;}}return 0;
}
15. auto类型&decltype类型
auto:编译器通过初始化自动推断变量的类型
比如:
auto val=val1+val2;// val1和val2是int类型,则val是int类型,如果它们都是double类型,那么val是double类型。
decltype:定义一个变量与一表达式的类型相同,但并不用该表达式初始化变量
比如:
decltype(i) j=2;//表示j以2作为初始值,但是j与2并不是同一类型,类型与i一致。
初学C++——清华大学 郑莉老师的课第一、二章笔记相关推荐
- C++“多态性”的实现与详细解说(学习来源于---清华大学 郑莉老师){附源码}
多态(清华大学 郑莉老师)意义: 指的是操作接口具有表现多种形态的能力,即能根据操作系统的不同采用不同的处理方式 是面向对象系统的主要特征之一(抽象.继承.封装.多态) 在这样的系统中,一组具有相用基 ...
- 清华大学郑莉老师java_郑莉(信息科学技术学院)老师 - 清华大学
郑莉 郑莉老师的简历 暂时还没有郑莉老师的简历内容. 和郑莉老师说几句呗 该功能升级中,暂停使用. 发布 0条点评 还没有点评,沙发等你来抢! × 请填写您的昵称 昵称: 完成 2007.02.28 ...
- 郑莉老师c++第五版 复习笔记
本文是郑莉老师c++第五版的复习笔记 文章目录 第0章:学习怎么学习 先修正下之前关于学习的错误认识 1.理科一定要学系统课,不要零零碎碎的学.零零碎碎就算学几十个小时反而也是浪费时间还会误入歧途. ...
- c 语言程序设计(清华大学郑莉),C+语言程序设计(清华大学郑莉)十一ppt课件
<C+语言程序设计(清华大学郑莉)十一ppt课件>由会员分享,可在线阅读,更多相关<C+语言程序设计(清华大学郑莉)十一ppt课件(26页珍藏版)>请在人人文库网上搜索. 1. ...
- 郑莉老师c++第五版+b站视频 学习笔记
本文是系统学习 郑莉c++第五版+b站视频的学习笔记. 郑莉老师b站内容分为 导学 文章目录 第0章:学习怎么学习--论道开篇+怎样学c++ 论道开篇 怎样学c++ 第1章绪论 导学笔记(学堂在线+b ...
- 【清华大学-郑莉教授】C++语言程序设计 类与对象
[清华大学-郑莉教授]C++语言程序设计 类与对象 面向对象程序设计的基本特点 类与对象的基础概念和语法 类和对象 构造函数和析构函数 默认构造函数 委托构造函数 复制构造函数 右值引用 移动构造函数 ...
- 【清华大学-郑莉教授】C++语言程序设计 函数的参数函数的内联、重载和系统函数的调用
[清华大学-郑莉教授]C++语言程序设计 函数的参数&&函数的内联.重载和系统函数的调用 函数的参数 交换算法 输入两个整数并交换 函数的内联.重载和系统函数的调用 内联函数 函数的重 ...
- 最值得收藏的 C++ 清华大学郑莉版全部知识点思维导图整理, 东南大学软件工程初试906科目
本文的思维导图根据清华大学郑莉出版的C++书籍整理而来并标记出重点内容,适用于想考东南大学软件工程906的同学 思维导图源文件已经发布在我的资源当中, 点击获取全部导图和配套OneNote笔记, 有需 ...
- c 语言 清华大学郑莉,c 语言程序设计郑莉清华大学答案
每一个子直到需要都已的开经明具量任务确所发工,语言程估算需要进行列的一系处理,语言程开发把待的软件细分,)估总工作量开发为(得到的方软件法称算法,们加把它然后起来,杂性项目的复由于. 序设学答额由贸易 ...
- 清华大学郑莉c++答疑
最新文章
- 基于SfM计算相机姿态
- 【 Notes 】Best linear unbiased estimator(BLUE) approach for time-of-arrival based localisation
- mysql 实现ztree_简单Ztree的实现————不连接数据库版
- 浏览器实验中的故障排除
- java异常判断_Java异常退出条件的判断示例代码
- LeetCode 257. 二叉树的所有路径(DFS)
- 论文公式编号右对齐_论文不会写?最详细的论文排版技巧
- 信息学奥赛一本通(1201:菲波那契数列)
- java导入lang_为什么java.lang不需要导放
- tcpip路由技术卷一_计算机网络题库考(2020.9.10晚18.320.30 北京卷)
- 人脸识别数据集-WebFace260M
- index函数c语言,C语言数据结构中定位函数Index的使用方法
- 解决react native打包apk文件安装好之后进入应用闪退的问题
- php课设报告致谢_科学网—博士论文致谢 - 曹墨源的博文
- Java 并发之Concurrent 包综述
- VC常见LINK处理方法
- Detection in Crowded Scenes: One Proposal, Multiple Predictions(拥挤场景下的检测:一个提议,多个预测)
- BYOD携带自己的设备办公
- 深圳赛意信息 怎么样_赛意信息蔡胜龙:制造业数字化资产管理的“术”与“道”...
- E212: 无法打开并写入文件
热门文章
- E-mark认证主要是针对哪些产品?
- 【模仿】模仿易信的UI
- Item 27: Familiarize yourself with alternatives to overloading on universal references
- 某计算机系统的内存容量配置为128,2015年9月教育部统考《计算机应用基础》模拟试卷(6)满分答案...
- 电力“十三五” 光伏分布式6000万千瓦迎来机遇
- GCC GDB调试总结(jyy操作系统学习笔记)
- python爬虫新手准备工作
- 用k3s搭建Kubernetes环境
- 【深度学习实战】Kaggle比赛:房价预测(kaggle-house-price)
- NES(FC) FPGA游戏卡开发笔记(6)---- 再整理下思路和具体工作(包括N8 Pro mapper部分的FPGA代码简单分析)