Linux学习-函数指针和指针函数

本文探讨了C/C++中的字符串处理,特别是指针函数和函数指针的使用。重点指出在函数返回值地址和局部变量内存回收的关系,强调了函数指针如何简化代码,通过传递函数来改变功能。

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

目录

字符串是char *型,代表的是字符串的第一个元素的地址

指针函数:

函数指针:


字符串是char *型,代表的是字符串的第一个元素的地址

指针函数:

int *Fun(int a, int b);

是函数,函数的返回值类型是指针类型

当主函数调用完函数返回值的地址,但是指针函数fun函数结束他0x2000地址的内存就会被回收。

所以再指针函数中,局部变量的地址绝对不能返回,因为局部变量会随这结束作用域会被回收,虽然能获得返回值的地址,但是地址对应的空间已经被回收过了。

主要是用作:将函数的返回值作为下一个函数的参数

函数指针:

是一个指针,是指针指向了函数

int *Fun(int a,int b);
//是指针函数
int (*Fun)(int a,int b) = NULL;
//定义函数指针变量Fun,占8个字节空间,
指向int返回值的有两个int参数的函数
int add(int a,int b)
{
    a += b;
}
//就可以直接  fun = add;
                fun(a,b);

当在一大段函数中,只需要改变函数中的局部功能,就可以使用函数指针传递;此操作会大大简化代码内容;例子如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值