C语言:函数指针和指针函数学习

一、指针函数

定义:

指针函数就是返回值类型是指针的函数(后面说的是本身是什么,前面说的是返回值类型是什么)

声明方法:

类型标识符 函数名(参数列表)
int* fun(int x, int y);
int * fun(int x, int y);
int  *fun(int x, int y);

使用示例:

#include<iostream>
using namespace std;
struct MyStruct
{
	int a, b;
};

MyStruct* fun(int x, int y)
{
	MyStruct* st = new MyStruct;
	st->a = x;
	st->b = y;
	return st;
}

int main()
{
	MyStruct* myData = fun(3, 4);
	cout << myData->a << myData->b;//打印值
	return 0;
}

二、函数指针

定义:

函数指针首先是一个指针,指向的内容是什么呢,指向的是一个函数,返回值类型是指向函数的返回值类型

声明方法:

类型标识符 (*函数名)(参数列表)
int (*fun)(int x, int y);//此处fun是指针名
fun 函数指针类型别名
typedef int (*fun)(int,int);//此处fun是类型别名

使用示例:

 struct MyStruct
{
	int a, b;
};

MyStruct my_max(int x, int y)//被指向的函数
{
	MyStruct st;
	st.a = x;
	st.b = y;
	return st;
}

MyStruct(*fun)(int x, int y);//声明一个函数指针

int main()
{
	//两种方法指向函数
	fun = my_max;
	cout << (*fun)(5, 3).a << (*fun)(5, 3).b << endl;
	fun = &my_max;
	cout << fun(5,1).a << (*fun)(5,1).b << endl;
	return 0;
}
struct MyStruct
{
	int a, b;
};

MyStruct my_max(int x, int y)
{
	MyStruct st;
	st.a = x;
	st.b = y;
	return st;
}

typedef MyStruct (*fun)(int,int);

int main()
{
	fun p = my_max;
	cout << (*p)(5, 3).a << (*p)(5, 3).b << endl;
	p = &my_max;
	cout << p(5,1).a << p(5,1).b << endl;
	return 0;
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值