C语言—指针数组

目录

一、什么是指针数组

定义指针数组,赋值,访问

代码演示:

运行结果:

二,如何定义函数指针数组

代码演示 :

函数指针数组的实战应用

例题一

代码演示

运行结果:


一、什么是指针数组

 

                                                   指针数组的每一项存放的都是指针

定义指针数组,赋值,访问

代码演示:

#include<stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int c = 30;
	int d = 40;
	
	int *p[4] = {&a,&b,&c,&d};  //指针数组的定义和指向,指针数组每一项存放的都是指针
	
	for(int i = 0;i<4;i++){     //遍历打印指针数组的每一项
		
		printf("%d ",*p[i]);

		//printf("%d ",*(p[i])); //见怪不怪
	}
	
	return 0;
}

运行结果:

10 20 30 40

二,如何定义函数指针数组

代码演示 :

#include<stdio.h>
#include<stdlib.h>
int getmax(int a,int b)
{
}

int getmin(int a,int b)
{
}

int get(int a,int b)
{
}

int main()
{

	int (*p[3])(int ,int ) = {getmax,getmin,get};  //定义函数指针数组  
	 //定义一个函数地址的函数指针数组,将函数指针数组指向(存放)三个函数的地址
       //定义的函数指针数组的类型要与被指向函数类型相同
       //定义的函数指针数组的参数要与被指向函数的参数类型一致匹配                                    
	return 0;
}

函数指针数组的实战应用

例题一

有两个整数a和b。求最大值;求最小值;求两整数值的和。(用函数指针数组方法)

代码演示

#include<stdio.h>
#include<stdlib.h>
int getmax(int a,int b)
{
	
	return a>b?a:b;
}

int getmin(int a,int b)
{
	
	return a<b?a:b;
}

int get(int a,int b)
{
	
	return a+b;
}


int main()
{
	int a = 10;
	int b = 20;
	int (*p[3])(int ,int ) = {getmax,getmin,get};   //定义一个存放多个函数地址的数组指针
	int ret;
	
	
	
	for(int i = 0;i<3;i++){
		
		printf("%d ",p[i](a,b));       //方式一,调用函数指针数组,
		//printf("%d ",(*p[i])(a,b));    //方式二,
		
	}
	
	return 0;
}

运行结果:

20 10 30   //最大值  最小值  两值的和

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值