Skip to content

Commit 621d663

Browse files
authored
Merge pull request 0voice#2 from Ecols/patch-1
Update C++学习笔记.md
2 parents e9a015b + a6e48db commit 621d663

1 file changed

Lines changed: 22 additions & 78 deletions

File tree

C++学习笔记.md

Lines changed: 22 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

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

9-
**作用:**可以无条件的跳转语句
9+
**作用:** 可以无条件的跳转语句
1010

11-
**语法:**`goto 标记;`
11+
**语法:** `goto 标记;`
1212

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

1515
```cpp
1616
int main() {
@@ -183,7 +183,7 @@ int main() {
183183
184184
185185
186-
**作用:**让代码结构更加清晰
186+
**作用:** 让代码结构更加清晰
187187
188188
函数分文件编写一般有4个步骤
189189
@@ -290,8 +290,6 @@ int main() {
290290

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

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

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

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

321-
322-
323-
324-
325319
#### 7.4 空指针和野指针
326320

327-
328-
329321
**空指针**:指针变量指向内存中编号为0的空间
330322

331-
**用途:**初始化指针变量
332-
333-
**注意:**空指针指向的内存是不可以访问的
323+
**用途:** 初始化指针变量
334324

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

336327

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

378369

379-
380370
#### 7.5 const修饰指针
381371

382372

383-
384373
const修饰指针有三种情况
385374

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

391380

392-
393381
**示例:**
394382

395383
```cpp
@@ -428,7 +416,7 @@ int main() {
428416

429417

430418

431-
**作用:**利用指针访问数组中元素
419+
**作用:** 利用指针访问数组中元素
432420

433421
**示例:**
434422

@@ -459,7 +447,7 @@ int main() {
459447

460448
#### 7.7 指针和函数
461449

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

464452

465453

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

635623
#### 8.3 结构体数组
636624

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

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

@@ -677,7 +665,7 @@ int main() {
677665
678666
#### 8.4 结构体指针
679667
680-
**作用:**通过指针访问结构体中的成员
668+
**作用:** 通过指针访问结构体中的成员
681669
682670
- 利用操作符 `->`可以通过结构体指针访问结构体属性
683671
@@ -720,23 +708,23 @@ int main() {
720708

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

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

725713
**示例:**
726714

727715
```cpp
728716
//学生结构体定义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;}
729717
```
730718

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

733721

734722

735723

736724

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

739-
**作用:**将结构体作为参数向函数中传递
727+
**作用:** 将结构体作为参数向函数中传递
740728

741729
传递方式有两种:
742730

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

855843

856-
857-
858-
859844
#### 1.1 程序运行前
860845

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

972957

973-
974-
975-
976958
**堆区:**
977959

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

981963

982-
983964
**示例:**
984965

985966
```cpp
@@ -1080,14 +1061,9 @@ int main() {
10801061

10811062

10821063

1083-
1084-
1085-
1086-
10871064
### 2、引用
10881065

10891066

1090-
10911067
#### 2.1 引用的基本使用
10921068

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

11191095

11201096

1121-
1122-
11231097
#### 2.2 引用注意事项
11241098

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

11281102

1129-
11301103
**示例:**
11311104

11321105
```cpp
@@ -1154,11 +1127,9 @@ int main() {
11541127

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

1157-
**作用:**函数传参时,可以利用引用的技术让形参修饰实参
1158-
1159-
**优点:**可以简化指针修改实参
1160-
1130+
**作用:** 函数传参时,可以利用引用的技术让形参修饰实参
11611131

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

11631134
**示例:**
11641135

@@ -1207,20 +1178,14 @@ int main() {
12071178
总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单
12081179
12091180
1210-
1211-
1212-
1213-
1214-
12151181
#### 2.4 引用做函数返回值
12161182
12171183
1184+
**作用:** 引用是可以作为函数的返回值存在的
12181185
1219-
**作用:**引用是可以作为函数的返回值存在的
1220-
1221-
**注意:****不要返回局部变量引用**
1186+
**注意:** **不要返回局部变量引用**
12221187
1223-
**用法:**函数调用作为左值
1188+
**用法:** 函数调用作为左值
12241189
12251190
12261191
@@ -1262,12 +1227,6 @@ int main() {
12621227
}
12631228
```
12641229

1265-
1266-
1267-
1268-
1269-
1270-
12711230
#### 2.5 引用的本质
12721231

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

1339-
1340-
1341-
1342-
1343-
1344-
13451298
### 3、函数
13461299

1347-
1348-
13491300
#### 3.1 函数默认参数
13501301

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

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

1418-
**作用:**函数名可以相同,提高复用性
1419-
1367+
**作用:** 函数名可以相同,提高复用性
14201368

14211369

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

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

1429-
1430-
14311377
**注意:** 函数的返回值不可以作为函数重载的条件
14321378

1433-
1434-
14351379
**示例:**
14361380

14371381
```cpp

0 commit comments

Comments
 (0)