C/C++对于函数指针数组的进一步解释

本文深入解析了C语言中的各种指针类型及其用法,包括简单指针、指针数组、指向数组的指针等,并通过具体示例代码演示了如何定义和使用这些复杂的指针类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本知识:

a) int a; // An integer 
b) int *a; // A pointer to an integer 
c) int **a; // A pointer to a pointer to an integer 
d) int a[10]; // An array of 10 integers 
e) int *a[10]; // An array of 10 pointers to integers 
f) int (*a)[10]; // A pointer to an array of 10 integers 
g) int (*a)(int); // A pointer to a function a that takes an integer argumentand returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take aninteger argument and return an integer

基本知识详见如下链接:

http://blog.youkuaiyun.com/s_a_n_/article/details/8246123

请参看如下代码: 

#include "stdio.h"
#include "stdlib.h"

//t_2为指针类型,指向含有10个元素的数组
//数组中每个元素都是一个指针,指向int型
typedef int *(*t_2)[10];

//fun2是一个函数,函数接受(int k)参数表,返回一个t_2类型的数据
//fun2是一个函数,函数接受(int k)参数表
//函数返回一个指针,指向含10个元素的数组
//数组中每个元素都是指针,指向int型
t_2 fun2(int k)
{
	t_2 p1=NULL;
	return p1;
}

//func_xx是一个函数,函数接受(int k)参数表
//函数返回一个指针,指向一个含10个元素的数组
//数组中每个元素是一个指针,指向int型
int *(*func_xx(int k)) [10]
{
	t_2 p1 = NULL;
	return p1;
}

int main()
{
	int i;

	//定义一个含12个元素的数组a,a中每个元素都是一个指针,指向一个函数
	//函数接受(int k)参数表,返回一个指针,指向含10个元素的int型数组
	int *(*(* a[12])(int))[10];

	//定义一个指针b,b指向一个函数
	//函数接受(int k)参数表,返回一个指针
	//指针指向一个含10个元素的int型数组
	int *(*(* b)(int))[10];

	for(i=0;i<12;i++)
		a[i]=fun2;

	//func_xx 与fun2实际上为同一类型
	b = func_xx;
	b=fun2;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sanzhong104204

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

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

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

打赏作者

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

抵扣说明:

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

余额充值