指针相关总结

  1、指针数组

   指针数组是数组,是一个存放指针的数组;

   比如:int *arr1[10]:arr1表示存放了10个指针的整型数组,(指针就是地址);

  2、数组指针

   数组指针是指针;

   比如:int *a 表示能够指向整型数据的指针;

              int*p[10]中的p先和[ ]结合,所以p代表数组,而int (*p)[10] 中的p先和*结合,说明p是一个指针变量,然后指针指向的是大小为10个整型的数组。需要注意的是,[ ]的优先级高于*,除此之外,也不能忽略p先和谁结合。

  3、函数指针 

  函数的地址可以是函数名,也可以对函数名取地址,需要注意的是函数名具有只读属性,只能做右值。

  如下代码,其输出结果均为函数test()的地址:

#include<stdio.h>
void test()
{
	printf("haha\n");
}
int main()
{
	printf("%p\n",test);
	printf("%p\n",&test);
	return 0;
}


  4、函数指针数组

   把函数的地址存放在数组中,这个数组称为函数指针数组。

   比如:int(*arr1[10])( ),其数组的内容是int(*)( )类型的函数指针。

  函数指针数组的用途:转移表(可用在实现加、减、乘、除功能的计算器中);

  5、指向函数指针数组的指针是一个指针,指针指向一个数组,数组的元素都是指针。

  void test (const char* str)

  {

       printf("%s\n",str);

  }

  void (*pfun)(const char*)=test:函数指针pfun;

  void(*pfunarr[10])(const char*);

  pfunarr[0]=test;  函数指针数组pfunarr;

  void(*(*ppfunarr)[10])(const char*)=&pfunarr:指向函数指针数组pfunarr的指针ppfunarr。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值