嵌入式学习之语言C第五章--------指针(2)

这一章,我们将通过指针与数组、函数结合。

通过指针引用数组

在c语言中,数组名代表数组中首个元素的地址,下面就通过这个列子来看看

 指针增量与数组的关系:指针的偏移就像是一个游标卡尺一样

 通过指针引用数组元素:有两种方法:1.下标法  2.指针法

  

 

 

 上面这个例子有一些见怪不怪的用法:1.指针当做数组名,下标法访问    

                                                               2.数组名拿来加

 

练习1:函数封装数组初始化,遍历

 

 

练习2:将数组中的n个元素逆序存放

 

 

 

 指针和二维数组

二维数组中上官特有说法:父子数组,为了研究清楚地址的概念,把二维回归到一维数组。

二维数组本质还是数组,跟一维数组不同点是二维数组的元素还是个数组(子数组)

 int  a [3][4]  中      a是父数组   a[0]  a[1]  a[2]  是子数组 

其中:  a表示的是父数组的地址

             a[0]   *a表示的是子数组的地址

 

 arry偏移1后地址增加了16个字节,说明偏移了4个元素的地址,说明是arry+1是从a[0]偏移到了a[1]。

下面这张图就可以辅助我们更好的理解了

 

 树立一下认知:

 

 

 

小总结:笔试题会考

 

数组指针  : 写法   int (*p)[n]   n代表有多少列

 

 

例子:输出二维数组任意行列的数

 

 

函数指针

定义:如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。 //函数名就是地址

 函数指针的调用跟变量一样,都是先定义一个函数指针变量,再指向这个函数,然后调用

它的好用之处是根据程序运行过程 的不同情况,调用不同的函数,下面通过这个例子来看看吧

 

 有两个整数a,b ,由用户输入1/2/3。如果输入1,程序就输出a,b中的大值,如果输入2,程序就输出a,b中的小值,如果输入3,程序就输出a,b的和。

 

 

 指针数组      int  *  p[4]  

定义:一个数组,若其元素都是指针类型数据,称为指针数组。也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。

 

函数指针数组 :是数组,数组中的每一项都是一个指针变量

 

 

指针函数         int *  a(int  x, int y)

概念:

 

例:有a名学生,每名学生有b门成绩,要求用户输入序号,就能输出对应的成绩,用指针函数来实现。

 

 二级指针:   是一个指针变量,指向一个一级指针,并保存该一级指针的地址;

 

 这个例子中我们可以用一级指针来存放指针变量的地址,但是使用有缺陷,无法获得最终地址的内容,所以这个时候我们就可以使用二级指针了,接下来看看这个例子。

 

 :

接下来就是对整个指针部分的总结了:

指针部分到此结束,如果文章有错误的地方请各位大佬斧正!!!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值