c++基础学习笔记(一)

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、结构体案例:结构体数组作为函数参数 进行排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值