c语言之函数与指针:

函数与指针:

函数名是一个地址

函数调用:

​ 其实是程序跳转到该内存执行代码

函数指针:

​ 本质是一个指针 指向一个函数

X func(T t,...);//函数声明

	X (*fp)(T t,...) = func;

	int (*fp)(int,int);//这是一个函数指针
	指针所指向的函数有一个int类型的返回值  函数的参数为两个int类型
定义函数指针类型:

​ typedef 返回返回值类型 (*函数指针类型名)(函数参数列表);

函数指针的用途:

​ 回调函数(钩子)

指针函数:

​ 本质是一个函数 函数的返回值类型是指针
​ T * func(arg…);


void qsort(void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));

二分查找   有序的
void *bsearch(const void *key, const void *base,
                 size_t nmemb, size_t size,
                 int (*compar)(const void *, const void *));
const void *key: 要查找的元素值的地址
const void *bease:内存起始位置
size_t nmemb:  数组元素的个数
size_t size:   数组中元素的字节大小
int (*compar)(const void *,const void *):比较函数
	= 0   两个参数相行
	< 0   第一个参数 小于 第二个参数  升序
	> 0   第一个参数 大于 第二个参数  降序


常量指针:

​ 本质是指针 指针所指向的内容是常量
​ const int *p;
​ const char *p;
​ int const *p;
​ char const *p;

指针常量:

​ 本质是常量 指针是一个常量
​ char * const p;
​ int * const p;

数组指针:

​ 本质是指针 指针指向一个数组
​ int (*p)[n];

指针数组:

​ 本质是数组 数组中的元素是指针
​ int * arr[n];

函数指针:

​ 本质是指针 指针指向一个函数
​ void (*pf)(int,int);

指针函数:

​ 本质是函数 函数返回指针类型
​ int * func(int);

函数指针数组:

​ 本质是数组 数组中的元素是指针 指针是一个函数指针
​ void (*fp[4])(int);

二级指针:

assert 是一个宏函数
debug和release版本
debug版本中是可行 测试过程
只要在程序中定义了NDEBUG或者在编译时指定NDEBUG, assert没用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小城微雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值