0
点赞
收藏
分享

微信扫一扫

C语言--指针进阶2--函数指针、函数指针数组、指向函数指针数组的指针、回调函数、指针和数组笔试题解析、指针笔试题

千白莫 2022-03-24 阅读 45
c语言

文章目录


六、函数指针

顾名思义,函数指针就是指向函数的指针,即存放函数地址的指针。

void test()
{
	printf("hehe\n");
}
int main()
{
	printf("%p\n", test);
	printf("%p\n", &test);
	return 0;
}

输出结果:
在这里插入图片描述
我们发现函数名与取地址函数名内容相同,此处需要注意的是:
数组名 != &数组名
函数名 = &函数名

函数指针的定义:
与数组指针的定义类似,我们需要这样来定义一个函数指针:

int Add(int x , int y)
{
	return x+y;
}
int main()	
{
	int (*pf)(int , int) = &Add;//定义一个函数指针
}	

需要注意的是:
其中第一个int表示函数返回值类型,因为我们的Add()函数的返回值是int类型,所以此处用int。
(*pf)是表示pf是一个指针,为了让它先和*结合起来所以用括号圈起来,这和数组指针类似。
(int ,int)则表示Add()函数的参数类型。

既然如此,那么如何去使用这个函数指针呢?请看下面代码:

int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int (*pf1)(int, int) = &Add;//定义一个函数指针
	int ret1 = (*pf1)(10, 6);//利用函数指针调用函数

	int (*pf2)(int, int) = Add;//因为Add和&Add一样,所以此处这样写也没问题!
	//由上面得出:Add === pf2
	//既然Add === pf2,那么下面的用法:
	int ret2 = pf2(10, 6);//这也是没问题的

	printf("%d\n", ret1);
	printf("%d\n", ret2);
	return 0;
}

对pf解应用(*pf)就找到了这个函数,再传参就可以调用该函数。
注意,一定要加括号括起来:(*pf)
但是,这里的*号其实是摆设,直接使用pf(10,6)也没啥问题!
当然啦,只有在函数指针这里这个*才可以省略!其他指针都不可省略解应用符号

输出结果:
在这里插入图片描述

阅读以下两个代码加深对函数指针的理解:

//代码1
(*(void (*)())0)();
//代码2
void (*signal(int , void(*)(int)))(int);

解释:


七、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。


八、使用步骤

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


九、

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

举报

相关推荐

0 条评论