文章目录
一 ·指针
二 ·指针和数组
三 ·指针数组和数组指针
四 ·指针和二维数组
五 ·void指针和NULL指针
六 ·指向指针的指针
前言
以下是本篇文章正文内容,下面案例可供参考
一 ·
首先关于取值运算符,先举个例子,打印以下代码,会让你比较清楚
可以看到整个程序可以正常运行,但是我们会发现,变量的类型不匹配,因此我们要把原来第二个char下面的char替换成int才能统一,如下:
若要对a这个变量赋值,F改成C,改法如下图实践
二 ·
指针和数组指向数组的指针
char * p ;
p = a ;//语句1
p =& a[0];//语句2
指针的运算。
1·当指针指向数组元毒时,可对指针变量进行加减运算,意义相当于指向距离指针所在位置向前或向后第7个元毒.
2·对比标准的下标法访问数组无素,这种使用指针进行间接访问的方法:指针法
3·需要强调: p +/并非简单将地址+ l ,而是指向数组的下个元素。
三·
关于数组指针和指针数组:
1.数组元素的访问:
数组中的各元素在内存中是连续分布的,要想访问数组中某一元素,那么就必须知道其地址。
在一维数组中,数组 A 的元素 A[i]的地址& A [i]= A + L * i ,其中 A 为数组的标识符(数组名),也可以用 A 来代表数组的首地址, L 为数组 A 的数据类型,由此可见,对于一维数组,只需要知道数据类型大小和索引 i ,就可以知道 A 的地址,从而就可以访问 Al 了,这也是为什么一维数组的定义可以不指定数组大小,也不会妨碍数组元素的访问。
二维数组,实际上也是一维数组,只不过这个一维数组的每个元素都是一个一维数组。
因此,将二维数组的每一行看故一个元素,很容易可以知道二维数组中组中各元素在内存中是按行优先进行连续存储的要知道二维数组中某一元素的地址,就必须知道数据类型大小以及二维数组的列数,这样最终才能实现对二维数组元素的访问, 这也是为什么二维数组的定义必须指向列数
四·指针和二维数组
五·Void指针和NULL指针
六·指向指针的指针
对pp进行一层解引用得到的就是p,对它进行两层解引用就是对p进行一层解引用,也就是读取到num的值,也就是520。
接着我们跟着视频来实践一下,编程一定要多动手实践
接着我又学着打了一堆代码,但是却出现四十多处报错,原因是很多地方没有申明变量,但我不明白为什么视频中也没有申明变量却可以正常运行这个程序呢,这儿是我的一个疑惑点
经过调整和调试,发现是自己把i搞错成1,导致出现中止和乱码,以此为戒,下次注意