函数指针之探秘

#include <stdio.h>

//演示函数指针的用法 
int max (int x,int y)
{
	return x>y?x:y;
} 
int min (int x,int y)
{
	return x<y?x:y;
} 

int main()
{
	int (*f)(int x,int y) ;
	f = max;
	printf("%d %d\n",max(2,6),(f)(8,4)); 
	
	f = &min;
	printf("%d %d\n",min(2,6),(*f)(8,4));
	/*
	由此可知:注意,将一个函数的地址初始化或赋值给一个指向函数的指针时,无需显式的取得函数地址,编译器知道隐式地获得函数的地址,
	因此在这种情况下&操作符是可有可无的,通常省略不用。
	
	类似的,为了调用函数指针所指向的函数而对指针进行解引用操作也是不必要的,因为编译器可以帮你解引用:
	(*fp)(12);   //显式地解引用
	fp(12);    //隐式地解引用,结果相同 
	*/
	
	typedef int (*PTRFUN) (int x,int y);//关于typedef定义类型 
	PTRFUN pf = max;
	printf("%d\n",(pf)(8,4));
	
	return 0; 
} 
#include <stdio.h>

typedef int (*print) (int);
int fun1(int i)
{
	return 2*i;
}

void fun2(int j,print p)	//函数指针做形参 
{
	for(int k=0;k<j;k++)
	printf("%d\t",p(k));
}

int main()
{
	int n = 10;
	fun2(n,fun1);
	return 0;
}

#include <stdio.h>

//演示函数指针数组的使用 
int add(int x,int y)
{
	return x+y;
}

int subtract(int x,int y)
{
	return x-y;
}

int multiply(int x,int y)
{
	return x*y;
}

int divide(int x,int y)
{
	return x/y;
}
int main()
{
	int (*p[4])(int a,int b) = {add,subtract,multiply,divide};
	for(int i=0;i<4;i++)
	{
		printf("%d\n",p[i](10,2));
	}
	
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: boost程序库是一个开源、跨平台、高效的C++程序库。它提供了丰富的功能模块,涵盖了从基本的数据结构到高级功能的庞大范围,可以帮助开发者更加高效地编写C++程序。 在boost程序库中,有许多重要的模块。比如:boost智能指针库,提供了多种智能指针类型,可以提高内存管理的灵活性和安全性;boost正则表达式库,提供了强大的正则表达式匹配和替换功能;boost线程库,为多线程编程提供了丰富的工具和模型;boost日期时间库,可以方便地处理日期、时间和时间段;boost文件系统库,提供了对文件和目录的操作功能;boost序列化库,可以将对象转化为字节序列,并实现对象的序列化和反序列化等。 在使用boost程序库时,首先需要下载和安装boost源码,然后在编译时添加相关的头文件路径和库文件路径。通过包含需要的boost头文件,就可以使用相应功能模块的类和函数了。在编写代码时,可以参考boost官方文档和示例代码,对于一些特定的问题,也可以查找boost用户社区进行解决方案的讨论。 总的来说,boost程序库是C++开发者的重要工具之一,它的广泛应用可以提高开发效率和代码质量。boost程序库探秘的过程,是对C++编程知识的巩固和扩展的过程,也能够帮助开发者更好地理解和掌握C++语言的特性和编程技巧。 ### 回答2: boost程序库是一个非常受欢迎的开源C++程序库,被广泛用于增强C++语言的功能和性能。它提供了众多的库,涵盖了从基础的数据结构到高级的算法等各个方面。 首先,boost程序库提供了许多常用的工具类和函数模板,例如智能指针、容器、字符串处理等,能够极大地简化开发工作,提高代码的可读性和可维护性。 其次,boost还提供了一些用于处理底层系统和网络编程的库,例如文件系统、正则表达式、多线程等,这些库可以帮助程序员更好地与操作系统进行交互,实现更高效和稳定的程序。 另外,boost还提供了一些用于数学计算和科学计算的库,例如随机数生成、线性代数、图像处理等,这些库可以方便地进行复杂的数学运算,支持科研和工程领域的应用。 此外,boost还特别注重跨平台性和标准化,在不同操作系统和编译器下都能够保持良好的兼容性。它严格遵循国际标准C++,并在其基础上进行扩展,提供了一些新的特性,使得开发者能够更好地利用C++语言的潜力。 总的来说,boost程序库是一个非常强大和实用的工具集,它能够帮助C++程序员提高开发效率,实现更高级和更复杂的功能。无论你是刚入门还是经验丰富的程序员,都可以从boost中找到适合自己的工具和库。无论是商业项目还是学术研究,boost都能够提供强大的支持。 ### 回答3: Boost程序库探秘是一本介绍Boost程序库的书籍。Boost是一个开放源代码的C++社区,提供了许多高质量、可重用的库。这本书的目的是帮助读者深入了解Boost库,并教会他们如何使用和扩展这些库。 首先,这本书详细介绍了Boost库的不同部分和功能。Boost库包含了许多模块,涵盖了从基础数据结构到高级算法的各个领域。读者将学习到Boost库中每个模块的主要功能和使用方法。 其次,本书还提供了许多实际示例和案例研究,帮助读者更好地理解Boost库的使用。这些示例涵盖了各种场景,包括网络编程、多线程编程、数值计算等等。通过实践,读者可以掌握如何在自己的项目中应用Boost库。 此外,本书还介绍了Boost库的扩展和定制。Boost库的设计非常灵活,允许用户根据自己的需求进行扩展和定制。通过阅读本书,读者将学会如何为Boost库编写自定义代码,以满足特定的需求。 总之,Boost程序库探秘是一本很好的学习Boost库的资料。无论是刚开始接触Boost库的初学者,还是已经对Boost库有一定了解的开发者,都能从这本书中获得宝贵的知识和经验。通过探索Boost库,读者将能够提升自己的C++编程技能,并开发出更高效、可靠的应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值