C语言指针进阶-2

本篇文章带 1. 数组传参和指针传参 2. 函数指针 3. 函数指针数组 的相关知识详细讲解!

如果您觉得文章不错,期待你的一键三连哦,你的鼓励是我创作动力的源泉,让我们一起加油,一起奔跑,让我们顶峰相见!!!


目录

一.数组传参和指针传参

1.一维数组

2.二维数组

3.一级指针传参

4.二级指针传参

二.函数指针

1.函数指针的必备知识

2.函数指针的使用

三.函数指针数组

1.函数指针数组的介绍

2.函数指针数组的使用:


一.数组传参和指针传参

1.一维数组

一维数组的传参,形参部分可以是数组,也可以是指针;

如:

注意:虽然形参写成数组形式,但是实际上也是通过指针来实现的,只是语法上允许写成数组的形式;

2.二维数组

二维数组传参,形参的部分可以是数组,也可以是指针;

3.一级指针传参

思考:
当一个函数的参数部分为一级指针的时候,函数能接收什么参数?
可以传变量的地址,或则一级指针变量等;

注意:

当自定义函数的时候,要注意形参和实参类型是否能匹配上;

4.二级指针传参

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

二.函数指针

1.函数指针的必备知识

数组指针--指向数组的指针

函数指针--指向函数的指针

我们先看看这段代码:

输出是:

结论:

函数名表示函数的地址;

&函数名也是表示首元素地址;

函数指针变量--存储函数地址的变量

首先,能给存储地址,就要求pfun1或者pfun2是指针,那哪个是指针?
答案是:
pfun1可以存放;pfun1先和*结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参
数,返回 值类型为void;

2.函数指针的使用

用例子演示:


运行结果:

三.函数指针数组

1.函数指针数组的介绍

数组是一个存放相同类型数据的存储空间

例如 int * arr[10]={0};

那要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义呢?

答案是:

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

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

2.函数指针数组的使用:

运行结果:

本章完~


相关推荐
武文斌778 分钟前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
爱吃喵的鲤鱼11 分钟前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
爱吃小胖橘36 分钟前
Unity网络开发--超文本传输协议Http(1)
开发语言·网络·网络协议·http·c#·游戏引擎
郝学胜-神的一滴43 分钟前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
小火柴1231 小时前
利用R语言绘制直方图
开发语言·r语言
奔跑吧邓邓子1 小时前
【C语言实战(6)】解锁C语言循环密码:for循环实战探秘
c语言·实战·for循环
GilgameshJSS1 小时前
STM32H743-ARM例程15-RTC
c语言·arm开发·stm32·实时音视频
pu_taoc1 小时前
深入剖析:基于epoll与主从Reactor模型的高性能服务器设计与实现
服务器·c语言·c++·vscode
csbysj20201 小时前
React 表单与事件
开发语言