Skip to content

Commit

Permalink
Merge pull request 0voice#2 from Ecols/patch-1
Browse files Browse the repository at this point in the history
Update C++学习笔记.md
  • Loading branch information
wenchao1024 authored Oct 21, 2021
2 parents e9a015b + a6e48db commit 621d663
Showing 1 changed file with 22 additions and 78 deletions.
100 changes: 22 additions & 78 deletions C++学习笔记.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

### 1、goto 语句(不建议使用)

**作用:**可以无条件的跳转语句
**作用:** 可以无条件的跳转语句

**语法:**`goto 标记;`
**语法:** `goto 标记;`

**解释:**如果标记的名称存在,执行到goto语句时,会跳转到标记的位置
**解释:** 如果标记的名称存在,执行到goto语句时,会跳转到标记的位置

```cpp
int main() {
Expand Down Expand Up @@ -183,7 +183,7 @@ int main() {
**作用:**让代码结构更加清晰
**作用:** 让代码结构更加清晰
函数分文件编写一般有4个步骤
Expand Down Expand Up @@ -290,8 +290,6 @@ int main() {

#### 7.3 指针所占内存空间



提问:指针也是种数据类型,那么这种数据类型占用多少内存空间?

**示例:**
Expand All @@ -318,20 +316,13 @@ int main() {

总结:所有指针类型在32位操作系统下是4个字节,64位操作系统为8个字节





#### 7.4 空指针和野指针



**空指针**:指针变量指向内存中编号为0的空间

**用途:**初始化指针变量

**注意:**空指针指向的内存是不可以访问的
**用途:** 初始化指针变量

**注意:** 空指针指向的内存是不可以访问的


**示例1:空指针**
Expand Down Expand Up @@ -376,11 +367,9 @@ int main() {
总结:空指针和野指针都不是我们申请的空间,因此不要访问。



#### 7.5 const修饰指针



const修饰指针有三种情况

1. const修饰指针 --- 常量指针
Expand All @@ -389,7 +378,6 @@ const修饰指针有三种情况
1. const既修饰指针,又修饰常量



**示例:**

```cpp
Expand Down Expand Up @@ -428,7 +416,7 @@ int main() {



**作用:**利用指针访问数组中元素
**作用:** 利用指针访问数组中元素

**示例:**

Expand Down Expand Up @@ -459,7 +447,7 @@ int main() {

#### 7.7 指针和函数

**作用:**利用指针作函数参数,可以修改实参的值(和前边形参相反)
**作用:** 利用指针作函数参数,可以修改实参的值(和前边形参相反)



Expand Down Expand Up @@ -507,7 +495,7 @@ int main() {
**案例描述:**封装一个函数,利用冒泡排序,实现对整型数组的升序排序
**案例描述:** 封装一个函数,利用冒泡排序,实现对整型数组的升序排序
例如数组:int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };
Expand Down Expand Up @@ -634,7 +622,7 @@ int main() {

#### 8.3 结构体数组

**作用:**将自定义的结构体放入到数组中方便维护
**作用:** 将自定义的结构体放入到数组中方便维护

**语法:** `struct 结构体名 数组名[元素个数] = { {} , {} , ... {} }`

Expand Down Expand Up @@ -677,7 +665,7 @@ int main() {
#### 8.4 结构体指针
**作用:**通过指针访问结构体中的成员
**作用:** 通过指针访问结构体中的成员
- 利用操作符 `->`可以通过结构体指针访问结构体属性
Expand Down Expand Up @@ -720,23 +708,23 @@ int main() {

**作用:** 结构体中的成员可以是另一个结构体

**例如:**每个老师辅导一个学员,一个老师的结构体中,记录一个学生的结构体
**例如:** 每个老师辅导一个学员,一个老师的结构体中,记录一个学生的结构体

**示例:**

```cpp
//学生结构体定义struct student{ //成员列表 string name; //姓名 int age; //年龄 int score; //分数};//教师结构体定义struct teacher{ //成员列表 int id; //职工编号 string name; //教师姓名 int age; //教师年龄 struct student stu; //子结构体 学生};int main() { struct teacher t1; t1.id = 10000; t1.name = "老王"; t1.age = 40; t1.stu.name = "张三"; t1.stu.age = 18; t1.stu.score = 100; cout << "教师 职工编号: " << t1.id << " 姓名: " << t1.name << " 年龄: " << t1.age << endl; cout << "辅导学员 姓名: " << t1.stu.name << " 年龄:" << t1.stu.age << " 考试分数: " << t1.stu.score << endl; system("pause"); return 0;}
```

**总结:**在结构体中可以定义另一个结构体作为成员,用来解决实际问题
**总结:** 在结构体中可以定义另一个结构体作为成员,用来解决实际问题





#### 8.6 结构体做函数参数

**作用:**将结构体作为参数向函数中传递
**作用:** 将结构体作为参数向函数中传递

传递方式有两种:

Expand Down Expand Up @@ -794,7 +782,7 @@ int main() {
#### 8.7 结构体中 const使用场景
**作用:**用const来防止误操作
**作用:** 用const来防止误操作
**示例:**
Expand Down Expand Up @@ -853,9 +841,6 @@ C++程序在执行时,将内存大方向划分为**4个区域**
不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程





#### 1.1 程序运行前

在程序编译后,生成了exe可执行程序,**未执行该程序前**分为两个区域
Expand Down Expand Up @@ -970,16 +955,12 @@ int main() {
```





**堆区:**

- 由程序员分配释放,若程序员不释放,程序结束时由操作系统回收
- 在C++中主要利用new在堆区开辟内存



**示例:**

```cpp
Expand Down Expand Up @@ -1080,14 +1061,9 @@ int main() {







### 2、引用



#### 2.1 引用的基本使用

**作用:** 给变量起别名
Expand Down Expand Up @@ -1118,15 +1094,12 @@ int main() {





#### 2.2 引用注意事项

- 引用必须初始化
- 引用在初始化后,不可以改变



**示例:**

```cpp
Expand Down Expand Up @@ -1154,11 +1127,9 @@ int main() {

#### 2.3 引用做函数参数

**作用:**函数传参时,可以利用引用的技术让形参修饰实参

**优点:**可以简化指针修改实参

**作用:** 函数传参时,可以利用引用的技术让形参修饰实参

**优点:** 可以简化指针修改实参

**示例:**

Expand Down Expand Up @@ -1207,20 +1178,14 @@ int main() {
总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单
#### 2.4 引用做函数返回值
**作用:** 引用是可以作为函数的返回值存在的
**作用:**引用是可以作为函数的返回值存在的
**注意:****不要返回局部变量引用**
**注意:** **不要返回局部变量引用**
**用法:**函数调用作为左值
**用法:** 函数调用作为左值
Expand Down Expand Up @@ -1262,12 +1227,6 @@ int main() {
}
```







#### 2.5 引用的本质

本质:**引用的本质在c++内部实现是一个指针常量.**
Expand Down Expand Up @@ -1304,7 +1263,7 @@ int main(){
#### 2.6 常量引用
**作用:**常量引用主要用来修饰形参,防止误操作
**作用:** 常量引用主要用来修饰形参,防止误操作
在函数形参列表中,可以加const修饰形参,防止形参改变实参
Expand Down Expand Up @@ -1336,16 +1295,8 @@ int main() {
}
```







### 3、函数



#### 3.1 函数默认参数

在C++中,函数的形参列表中的形参是可以有默认值的。
Expand Down Expand Up @@ -1387,8 +1338,6 @@ C++中函数的形参列表里可以有占位参数,用来做占位,调用
**语法:** `返回值类型 函数名 (数据类型){}`
**示例:**
```cpp
Expand All @@ -1415,8 +1364,7 @@ int main() {

##### 3.3.1 函数重载概述

**作用:**函数名可以相同,提高复用性

**作用:** 函数名可以相同,提高复用性


**函数重载满足条件:**
Expand All @@ -1426,12 +1374,8 @@ int main() {

- 函数参数**类型不同** 或者 **个数不同** 或者 **顺序不同**



**注意:** 函数的返回值不可以作为函数重载的条件



**示例:**

```cpp
Expand Down

0 comments on commit 621d663

Please sign in to comment.