引言
- 本文所写的是C语言中指针部分的基础内容,由于学习数据结构(C语言版)要经常用到该部分的内容,所以整理了一下相关的知识点。
- 文中都是一些较基础的知识点,如要深入学习这部分的内容,建议去看相关书籍和教学视频。
知识点思维导图
补充:
- 指针的格式符是 %p 。
- 取地址运算符:「 & 」用于获取变量的地址。
- 解引用运算符(指针运算符、间接寻址运算符):「 * 」用来访问指针变量指向的变量的值。
注意事项与易错点
- 变量的地址指的是变量在内存中所占存储空间的首地址。
- 习惯上在定义指针变量的同时将其初始化为NULL。
- 三条准则:1)清楚指针指向哪里;2)清楚指针指向对象;3)不使用未初始化的指针。
四个重要操作
-
定义:
int *pa;//类型关键字 *指针变量名;
定义声明了指针变量的名字及其所能指向的数据类型。
-
赋值:
pa = &a;
注:指针变量只能指向同一基类型的变量。
-
初始化:
int *pa = &a;
相当于:「 int *pa; pa = &a; 」
-
访问:
*pa = 9;//修改指针变量pa所指向变量的值 printf("%d",*pa);//输出指针 pa 所指向的变量
1)注意「 pa = &a; 」(修改指针的指向)与「*pa = a; 」(修改指针所指向变量的值)的区别。
2)可以像使用普通变量 a 一样来使用 *pa。
按值调用与模拟按引用调用
- 按值调用(传值)不能在被调函数中改变其调用语句中的实参值。(即函数内的语句无法改变函数外的变量值)
- 模拟按引用调用(传地址)可以在被调函数中改变主调函数的中这个变量的值。
- 需要从函数返回多个值时,用模拟按引用调用。
入口参数与出口参数
- 入口参数:在函数调用前必须确定其值的函数参数。
- 出口参数:在函数调用结束后才能背确定的函数参数,多为指针形参。
参考资料:
[1] 苏小红. C语言程序设计(第4版). 北京:高等教育出版社,2020.