1月29日
1、OOP的·特点
1)、万事万物皆对象
2)、每个对象都有一个类型
3)、一个特定类型的所有的对象都能接收相同的消息,即能接收相同消息的对象属于同一类型
2、每个对象都有一个接口
1)接口是对象接收消息的方式
2)接口定义了这个对象属于什么类
3)有接口意味着将来可以更换东西,即在程序里面可以拆换 不至于一层不变。
4)保护了内部某些结构,便于程序更新换代升级。
2月11日
1、sizeof关键字
可以统计数据类型所占内存空间
语法:sizeof(数据类型/变量)
2、float: 占用空间4,有效数字范围:7位有效数字
Double: 8, 15~16位有效数字
3、字符型变量用于显示单个字符 创建字符型变量时用单引号,且单引号内只能有一个字符
Char ch = ‘a’;
只占用一个字节 且内存中实质上存储的是字符的Ascll编码 查看时直接强转 (int)ch便可查看其Ascll编码
4、字符串类型 用于表示一串字符
C++风格:string 变量名 = “字符串值”; 用这个风格得引用头文件#include<string>
等号后面要用双引号
2月12日
1、前置递增先对变量进行++ 再计算表达式
后置递增先计算表达式,再对变量进行++
int x = 10;
int x1 = x++ * 10; //先乘10后加 100
cout << x << endl;
cout << x1 << endl;
int b = 10;
int b1 = ++b * 10; // 先加后乘10 110
cout << b << endl;
cout << b1 << endl;
2月17日
1、一维数组的三种方式
数组类型 数组名【数组长度】;
数组类型 数组名【数组长度】={值};
数组类型 数组名【】= {值}
2、数组特点:放在连续的内存空间中,数组中每个元素都是相同的类型
3、定义数组时 必须有初始长度
4、数组名是一个常量 不可以进行赋值操作
5、定义二维数组时可不写行 但必须写列
Int arr[][3] = {1,2,3,4,5,6};
6、二维数组的名称用途
(1)可以查看二维数组所占用的内存空间大小 sizeof(arr)
(2) 可以查看二维数组的首地址 &arr[0][0] 或者直接cout<<arr
(3)二维数组的首地址、第一行的首地址和第一个元素的首地址相同
2月18日
1、值传递时,形参发生任何改变都不会影响实参。
2、函数使用前必须先定义或者声明。声明可以有多次,定义只能有一次。
3、函数分文件的书写
1)创建.h后缀名的头文件
2)创建.cpp后缀名的源文件
3)在头文件中写函数声明
4)在源文件中写定义,且要书写#include “头文件名.h”
5)在包含main函数的文件中要写#include “头文件名.h”
2月19日
1、指针的作用:通过指针来间接访问内存
2、可以通过指针来保存一个地址。指针就是一个地址。
3、定义指针的语法 : 数据类型 * 指针变量名;
4、在32位操作系统中指针占4位内存空间,在64位操作系统中 指针占8位内存空间 (任何指针类型都是一样的。
5、空指针:指向内存为0的空间
1)空指针用于给指针变量进行初始化
2)空指针是不可以被访问的,因为内存中0到255的空间是属于系统的
6、野指针:指针变量指向非法内存空间 程序中尽量避免
7、const修饰 (const后面跟的啥 啥就不能改变 图1const后面为 *p 故*p不能改变
图2const后面是p,故p不能改变,图3const后面既有p又有*p,故啥都不能变
8、指针和数组
9、指针和函数
值传递没办法改变实参,而利用指针进行地址传递,形参改变实参也跟着改变。
10、指针、数组、函数
11、结构体
结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。
结构体变量访问数据的方式:变量名.数据变量名;
12、结构体数组
13、结构体指针
作用:通过指针访问结构体中的成员
利用操作符 ->可以通过结构体指针访问结构体属性
14、结构体嵌套结构体
结构体中的成员可以是另一个结构体
15、结构体做函数参数
1)值传递
2)地址传递
如果不想修改主函数中的数据,用值传递,反之用地址传递。地址传递中形参改变则实参也会跟着改变。
16、const在结构体中的使用场景
用const防止误操作。
1)注意将函数中的形参改为指针可以减少内存空间,而且不会复制新的副本。
2月20日
1、结构体案例
注意随机数与伪随机数 详情C++随机数(rand和srand)函数用法详解
有时程序需要一个特定范围内的随机数。要将随机数的范围限制在 1 和某个最大值 max 之间的整数,可以使用以下公式:
number = rand() % max + 1;
例如,要生成 1〜6 的随机数来代表骰子的点数,则可以使用以下语句:
dice = rand() % 6 + 1;
这里简单介绍一下其工作原理。求余数运算符(%)可以获得整除之后的余数。当使用通过 rand 函数返回的正整数除以6时,余数将是 0〜5 的数字。因为目标是 1〜6 的数字,所以只需要给余数加 1 即可。
2、结构体案例:结构体数组作为函数参数 进行排序