C50-指针数组
一 指针数组的基本语法
1.概念:指针数组是一个元素均为指针的数组
2.定义与声明
- 语法:
数据类型 *数组名[数组长度];
int *ptr_arr[5]; // 包含5个int指针的数组
char *str_list[3]; // 存储3个字符串指针的数组//不能写成一维数组的指针变量
int (*p)[4]
二 示例
1.一个简单的示例:
- 代码示例:
#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]));}return 0;
}
- 成果展示:
2.进阶:函数指针数组
- 代码示例:
#include <stdio.h>
#include <stdlib.h>//封装求最大值函数
int GetMax(int data1,int data2)
{int result;result=data1>data2?data1:data2;return result;
}//封装求最小值函数
int GetMin(int data1,int data2)
{int result;result=data1<data2?data1:data2;return result;
}//封装求和函数
int GetSum(int data1,int data2)
{int result;result=data1+data2;return result;
}//主函数
int main()
{//定义变量int num1=10;int num2=20;int result;//定义并初始化函数指针数组int(*pfunc[3])(int data1,int data2)={GetMax,GetMin,GetSum};//基于"循环+函数(参数格式一致的函数)指针数组"的批量处理,然后数据输出for(int i=0;i<3;i++){ result=(*(pfunc[i]))(num1,num2);printf("%d ",result);}return 0;
}
- 成果展示: