指针数组 | 数组指针 | 指针函数 | 函数指针 的区别

1.指针数组(指针的数组)

例:

arr和[]在一起,说明arr一定是长度为10的数组,数组的类型为int*;

2.数组指针(数组的指针)

例:

brr和*在一起,说明brr一定是指针,该指针指向长度为4的int数组

int arr[4] = {0};
int (*brr)[4] = &arr;// brr 期望的是 int (*)[4] 类型,&arr表示arr整个数组的地址

注:在二维数组传参的时候为什么要这么传呢?(void arry(int (*arr)[4],int lows)

在计算机中没有二维的概念,二维数组其实都是每一个一维数组按照行排列在一起的

所以我们在给二维数组传参的时候参数为:1.int (*arr)[4]//表示一个指向数组的指针2.int lows//表示有多少行。共同构成一个二维数组

3.指针函数(指针的函数)

例:

arry和()在一起,说明arry一定是函数,参数为int,int。返回值为int*。返回指针的函数,简称指针函数

4.函数指针(函数的指针)

例:

h和*在一起,h一定是指针,指向函数。函数参数为int,int。返回值为int

可以用于:

标准规定:函数名也表示函数的地址。//max=&max

int max(int x, int y)
{
	if (x > y)
		return x;
	else 
		return y;
}
int main()
{
	int a = 10;
	int b = 20;
	int (*p)(int,int) = max;// 正确声明函数指针,指定参数类型
	// 调用函数指针
	int result = p(a, b);  // 等价于 max(a, b)
	return 0;
}

总结

概念本质核心语法典型用途
指针数组数组type *array[size];存储多个指针(如字符串数组)
数组指针指针type (*ptr)[size];操作多维数组或传递数组边界
指针函数函数type *func(params);返回指针类型(如动态内存分配)
函数指针指针type (*ptr)(params);动态调用函数或实现回调机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值