C++基本概念和基本语法以及算法的流程控制
C++程序的开发过程(1-1)
- 算法与数据结构设计(解决事情要用什么方法) ***最重要***
- 源程序编辑(把算法写成计算机能够理解的语言)
- 编译(翻译工具翻译汇编语言使计算机能够知道)
- 连接(完成一个项目需要把各部分连接起来,形成可执行文件)
- 运行调试
计算机指令系统(1-2)
- 机器硬件能够识别的语言(机器语言)的集合
- 它是软件和硬件的主要界面
计算机软件
- 应用软件(dota,浏览器,qq)
- 系统软件(windows,ios,linx)
- 中间件(提供系统软件和应用软件之间连接的软件)
***软件 = 程序 + 文档 (一定要重视写文档说明,自己的数据结构、算法说明)
封装
- 隐蔽对象的内部细节
- 对外形成一个边界
- 只保留有限的对外接口
- 使用方便、安全性好
多态(1-4)
同样的消息作用在不同的对象上有可能引起不同的行为(比如:打,打篮球、打乒乓球都是打,但是打的方法不一样)
Java是半编译半解释的,Windows和mac 里面都有一个Java 虚拟机,由Java虚拟机将编译后的中间二进制代码再次解释,形成本地的二进制代码,所以说,Java是跨平台的高级语言。
补码(1-6-3)
- 正整数的补码反码都是它本身
- 负整数的补码就是(求返加一) 反码:保持负号位不变,其它位1变0,0变1
补码:最后加一形成补码
补码用于表示负整数
补码的优点:
1,0的表示唯一
2,符号位可作为数值参与 运算
3,补码运算结果还是补码
补码再求补即可得到原码(求返加一)
如果负数之和为正数或者正数之和为负数,说明运算结果溢出
在VS中设置断点:使程序运行能够停足够长的时间方便观察(快捷键F9)
调试:F5
发布
*在生成发布版本之前,需要清除早期生成过程中创建的中间文件和输出文件,确保其是最终版本(生成—清理解决方案)
*在菜单栏上将debug—release
*生成—生成解决方案
(然后就生成exe文件了,在项目文件中)
2-2-1
“cout” 预定义好的一个对象在编译工具中的库中,表示向输出流输送
“<<” 这是一个插入运算符
“endl” 预定义好的符号,表示行结束
Std::cout = using namespace std; {cout ,,,}
浮点数在内存中是近似存储的,所以一般不会去比较两个浮点数的大小,如果非要比较,则用他们两个相减的值看是否足够小。
Sizeof 运算(2-4-3)
Sizeof 运算:求一个变量或者一种数据类型它所占的字节数
语法形式:sizeof(类型名)或 sizeof 表达式/变量名
例: sizeof(short) sizeof x
Unsigned 无符号类型,不能表示负数
输入输出流(I/O流) (2-5)
- 在c++中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前被建立,使用后被 删除。
- 数据的输入与输出都是通过I/O流来实现的,cin和cout是预定义的流类对象。Cin用来处理标准输入,即键盘输入。Cout用来处理标准输出,即屏幕输出。
- 从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。
预定义的插入符和提取符
- “<<”是预定义的插入符,作用在流对象cout 上便可实现向标准输出设备输出。
- 标准输入是将提取符作用在流对象cin上 cin >> 表达式 >> 表达式...
- 提取符可以连续写多个,每个后面跟一个表达式,该表达式通常是用于存放输入值的变量。 int a,b; cin >> a >> b;
endl
- 在c++中,终端输出换行时,用cout<<......<<endl 与 “\n”都可以,这是初级的认识。但二者有小小的区别,用endl时会刷新缓冲区,使得栈中的东西刷新一次(删除),但用“\n”不会刷新,它只会换行,盏内数据没有变化。但一般情况,二者的这点区别是很小的,在大的程序中可能会用到。建议用endl来换行.
- endl除了写’\n’进外,还调用flush函数,刷新缓冲区,把缓冲区里的数据写入文件或屏幕.考虑效率就用’\n’.
- cout << endl;除了往输出流中插入一个’\n’还有刷新输出流的作用.
cout << endl; 等价于: cout << ‘\n’ << flush;
在没有必要刷新输出流的时候应尽量使用cout << ‘\n’, 过多的endl是影响程序执行效率低下的因素之一.
自定义类型(2-8)
一,类型别名:为已有类型另外命名
格式:
1, typedef 已有类型 新类型名
例: typedef double Area; Area a;
2, using 新类型名 = 已有类型名
例 : using Area = double; Area a;
二,枚举类型
- 定义方式:将全部可取值一一列举出来
- 语法形式:
enum 枚举类型名 {变量值列表}
例 : enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT}
默认情况下,SUN = 0, MON = 1, ... SAT = 6;
三,auto 类型与 decltype 类型
- auto : 编译器通过初始值自动判断变量类型(相当于c#中的var)
- Decltype : 定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量
例 : decltype (i) j = 2; 表示j以2作为初始值,但它的类型是i类型。
Struct 结构体(类型):
- 作用: 把一组相互关联的数据整合在一起
例 : struct MyTimeStruct {int year; int mouth;};
Int main () {MyTimeStruct myTime = {2018, 7}; //初始化
myTime.year = 2020; } //给结构体中的变量赋值
================================================================================================本笔记按照清华大学郑莉所发布的视频所作,是我在c++路程的起始,希望自己能够坚持,打好每一块地基,也希望看到的
的每一个人能够珍惜学习的时光,不留遗憾。
YOLO