“造地基”的C++ (一)C++基本概念和基本语法以及算法的流程控制

C++基本概念和基本语法以及算法的流程控制

C++程序的开发过程(1-1)

  1. 算法与数据结构设计(解决事情要用什么方法) ***最重要***
  2. 源程序编辑(把算法写成计算机能够理解的语言)
  3. 编译(翻译工具翻译汇编语言使计算机能够知道)
  4. 连接(完成一个项目需要把各部分连接起来,形成可执行文件)
  5. 运行调试

 

计算机指令系统(1-2)

  1. 机器硬件能够识别的语言(机器语言)的集合
  2. 它是软件和硬件的主要界面

 

计算机软件

  1. 应用软件(dota,浏览器,qq)
  2. 系统软件(windows,ios,linx)
  3. 中间件(提供系统软件和应用软件之间连接的软件)

 

***软件 =  程序 + 文档     (一定要重视写文档说明,自己的数据结构、算法说明)

 

封装

  1. 隐蔽对象的内部细节
  2. 对外形成一个边界
  3. 只保留有限的对外接口
  4. 使用方便、安全性好

 

多态(1-4)

同样的消息作用在不同的对象上有可能引起不同的行为(比如:打,打篮球、打乒乓球都是打,但是打的方法不一样)

 

Java是半编译半解释的,Windows和mac 里面都有一个Java 虚拟机,由Java虚拟机将编译后的中间二进制代码再次解释,形成本地的二进制代码,所以说,Java是跨平台的高级语言。

 

补码(1-6-3)

  1. 正整数的补码反码都是它本身
  2. 负整数的补码就是(求返加一)   反码:保持负号位不变,其它位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)

  1. 在c++中,将数据从一个对象到另一个对象的流动抽象为“流”。流在使用前被建立,使用后被 删除。
  2. 数据的输入与输出都是通过I/O流来实现的,cin和cout是预定义的流类对象。Cin用来处理标准输入,即键盘输入。Cout用来处理标准输出,即屏幕输出。
  3. 从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。

 

预定义的插入符和提取符

  1. “<<”是预定义的插入符,作用在流对象cout 上便可实现向标准输出设备输出。
  2. 标准输入是将提取符作用在流对象cin上   cin >> 表达式 >> 表达式...
  3. 提取符可以连续写多个,每个后面跟一个表达式,该表达式通常是用于存放输入值的变量。     int a,b;  cin >> a >> b;

 

endl

  1. c++中,终端输出换行时,cout<<......<<endl 与 “\n”都可以,这是初级的认识。但二者有小小的区别,用endl时会刷新缓冲区,使得栈中的东西刷新一次(删除),但用“\n”不会刷新,它只会换行,盏内数据没有变化。但一般情况,二者的这点区别是很小的,在大的程序中可能会用到。建议用endl来换行.
  2. endl除了写’\n’进外,还调用flush函数,刷新缓冲区,把缓冲区里的数据写入文件或屏幕.考虑效率就用’\n’.
  3. 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;

二,枚举类型

  1. 定义方式:将全部可取值一一列举出来
  2. 语法形式:

enum 枚举类型名 {变量值列表}

例 : enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT}

      默认情况下,SUN = 0, MON = 1, ... SAT = 6;

三,auto 类型与 decltype 类型

  1. auto : 编译器通过初始值自动判断变量类型(相当于c#中的var)
  2. Decltype : 定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量

例 : decltype (i) j = 2;  表示j以2作为初始值,但它的类型是i类型。

 

Struct 结构体(类型):

  1. 作用: 把一组相互关联的数据整合在一起

例 : struct MyTimeStruct {int year;  int mouth;};

      Int main () {MyTimeStruct myTime = {2018, 7};   //初始化

myTime.year = 2020; } //给结构体中的变量赋值

 

 

 

================================================================================================本笔记按照清华大学郑莉所发布的视频所作,是我在c++路程的起始,希望自己能够坚持,打好每一块地基,也希望看到的

的每一个人能够珍惜学习的时光,不留遗憾。

YOLO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值