@@ -46,10 +46,11 @@ Process finished with exit code 0
46
46
47
47
为什么dA和dB没有变化呢?
48
48
49
- main()函数调用swap()函数时,实参dA、dB的值分别传给形参a和b值传递),在swap()函数内变量a和b的值进行了互换。但是,变量a和b只是实参变量dA、dB的副本,变量dA、dB本身的值并没有改变。因此,在此代码中使用函数并没有实现变量a和b的值的交换。
49
+ main()函数调用swap()函数时,实参dA、dB的值分别传给形参a和b值传递),在swap()函数内变量a和b的值进行了互换。但是,变量a和b只是实参变量dA、dB的副本,变量dA、dB本身的值并没有改变。因此,在此代码中使用函数并没有实现变量a和b的值的交换。
50
50
C语言是以传值的方式将参数值传递给被调用函数,因此,被调用函数不能直接修改主调用函数中变量的值。
51
51
52
52

53
+
53
54
为了解决这个问题,我们可以使用C语言提供的指针(pointer)。指针实质上是一个变量,该变量里面存储的是某个特定变量在内存中的地址,我们把它表述为指向该特定变量的指针变量(指针),该指针变量的类型与它指向的变量的类型一致。
54
55
55
56
@@ -189,14 +190,14 @@ char *ch;
189
190
190
191
## 访问指针所指向的地址对应的变量的值
191
192
192
- 通过` * ` 云算法来返回位于操作数所指定地址的变量的值 。
193
+ 通过` * ` 运算符来返回位于操作数所指定地址的变量的值 。
193
194
194
195
``` c
195
196
#include < stdio.h>
196
197
197
198
int main () {
198
- int var = 20; /* 实际变量的声明 */
199
- int *ip; /* 指针变量的声明 */
199
+ int var = 20; /* 实际变量的声明 */
200
+ int *ip; /* 指针变量的声明 */
200
201
201
202
ip = &var; /* 在指针变量中存储 var 的地址 */
202
203
@@ -287,7 +288,7 @@ ptr++
287
288
288
289
声明:
289
290
``` c
290
- type int (* func_ptr)(int, int);
291
+ int (*func_ptr)(int , int );
291
292
```
292
293
例如:
293
294
@@ -488,8 +489,8 @@ Value of **p2 variable is 50
488
489
489
490
490
491
491
- - [ 上一篇:1.C语言简介(一)] ( https://github.com/CharonChui/CStudyNote /blob/main/C%E8%AF%AD%E8%A8%80% E5%85%A5%E9%97%A8/1.C%E8%AF%AD%E8%A8%80%E7%AE%80%E4%BB%8B(%E4%B8%80).md )
492
- - [ 下一篇:3.结构体(三)] ( https://github.com/CharonChui/CStudyNote /blob/main/C%E8%AF%AD%E8%A8%80 %E5%85%A5%E9%97%A8/3.%E7%BB%93%E6%9E%84%E4%BD%93(%E4%B8%89).md )
492
+ - [ 上一篇:1.C语言简介(一)] ( https://github.com/CharonChui/CPPStudyNote /blob/main/C%E5%85%A5%E9%97%A8/1.C%E8%AF%AD%E8%A8%80%E7%AE%80%E4%BB%8B(%E4%B8%80).md )
493
+ - [ 下一篇:3.结构体(三)] ( https://github.com/CharonChui/CPPStudyNote /blob/main/C%E5%85%A5%E9%97%A8/3.%E7%BB%93%E6%9E%84%E4%BD%93(%E4%B8%89).md )
493
494
494
495
495
496
---
0 commit comments