《C游记》 第柒章 - 指针进阶内功锻 功成行满见真如(贰)

目录

(壹) 数组参数、指针参数 

  🌈  1.1 一维数组传参

  🌈  1.2 二维数组传参

  🌈  1.3 一级指针传参

  🌈  1.4 二级指针传参

(贰) 函数指针 

(叁) 函数指针数组


✅《C游记》 专栏 ✅   《小玄的C游之旅》


(壹)数组参数、指针参数 

在写代码的时候难免要把【数组】或者【指针】传给函数,这时候就出现了问题,我们在函数的参数这一块该如何设计呢?

🌈  1.1 一维数组传参

一维数组进行传参的时,函数参数可以写成  数组 指针因为数组名是地址,可用指针接收

其中参数是数组时,数组大小可写也可不写;

参数是指针时要找到对应的指针类型才行;


传递参数是普通数组  arr(3种方式)


 🌈  1.2 二维数组传参


对于二维数组,可以不知道有多少行,但必须知道一行多少个元素


🌈  1.3 一级指针传参


思考: 

当一个函数的参数部分为一级指针的时候,函数能接收什么参数?

比如:



🌈  1.4 二级指针传参


思考: 

当函数的参数为二级指针的时候,可以接收什么参数?

 

(贰)函数指针 

首先看一段代码:


输出的是两个地址,这两个地址是test函数的地址。 那我们的函数的地址要想保存起来,怎么保存?

下面我们看代码:


首先,能给存储地址,就要求pfun1或者pfun2是指针,那哪个是指针? 

答案是:

pfun1可以存放。

pfun1先和 * 结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参数,返回值类型为 void 。


阅读两段有趣的代码:


代码2太复杂,如何简化:

 

 解析:

  1. signal 是一个函数声明
  2. signal函数的第一个参数是int,第二个参数是函数指针
  3. signal函数的返回类型为函数指针
  4. signal函数的第二个参数是函数指针,该指针指向的函数
  5. 参数是int,返回类型为void
  6. signal函数的返回类型也是一个函数指针,该函指针指向的函数
  7. 参数是int,放回类型为void

(叁) 函数指针数组

数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组, 比如:

  

那要把函数的地址存到一个数组中,那这个数组就叫 函数指针数组

那函数指针的数组如何定义呢?

  

答案是:

parr1 parr1先和[]结合,说明parr1是数组,数组的内容是什么呢?

是int (*)()类型的函数指针。


函数指针数组的用途:转移表

使用函数指针数组的实现:

  

  


 

  

 

  • 49
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 44
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄澈_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值