C指针强化

铁律1;指针也是变量,因此我们在画内存图的时候跟其他变量一样,只是我们存放的是一个地址,
在这里插入图片描述

铁律2;理解指针必须要以内存4区和函数模型相结合,要确定指向的内存是否在其他地方还可以用

铁律3;指针一般与函数参数一起应用
———————参数可以分为输入型和输出型两种,看是否需要改变,可以加const表示。修改一级指针需要传入其一级指针的地址则用二级指针接收才能改变。

一级指针典型用法(指针做函数参数)
——做输入int showArray(int *array, int iNum)数组就是这样传递的,首地址加个数
——做输出int geLen(char *pFileName, int *pfileLen);
二级指针典型用法(指针做函数参数)
——做输入int shouMatrix(int [3][4], int iLine);
——做输出int getData(char **data, int *dataLen);
重点注意:主调函数还是被调用函数分配内存,被调用函数是在heap/stack上分配内存

铁律4 ;在free释放内存的时候要记得把指针变量也设为NULL,防止野指针出现。因为free只完成指向内存的释放,而不管指针变量。

【王保明老师经典语录】
1)指针也是一种数据类型,指针的数据类型是指它所指向内存空间的数据类型
2)间接赋值*p是指针存在的最大意义 
3)理解指针必须和内存四区概念相结合 
4)应用指针必须和函数调用相结合(指针做函数参数)
指针是子弹,函数是枪管;子弹只有沿着枪管发射才能显示它的威力;指针的学习重点不言而喻了吧。接口的封装和设计、模块的划分、解决实际应用问题;它是你的工具。
5)指针指向谁就把谁的地址赋给指针 
6)指针指向谁就把谁的地址赋给指针,用它对付链表轻松加愉快
7)链表入门的关键是分清楚链表操作和辅助指针变量之间的逻辑关系
8)C/C++语言有它自己的学习特点;若java语言的学习特点是学习、应用、上项目;那么C/C++语言的学习特点是:学习、理解、应用、上项目。多了一个步骤吧。
9)学好指针才学会了C语言的半壁江山,另外半壁江山在哪里呢?你猜,精彩剖析在课堂。
10) 理解指针关键在内存,没有内存哪来的内存首地址,没有内存首地址,哪来的指针啊。

猜你喜欢

转载自blog.csdn.net/zw1996/article/details/84721353