C++ 函数指针的详解
来源:互联网 发布:linux密码忘了 编辑:程序博客网 时间:2024/06/07 18:50
1.函数指针
(1)一般来说函数通常包括一系列指令,通过编译后,在内存中占据了一块存储空间。
它有一个起始地址,这个起始(入口)地址就称为函数的指针。
(2)主函数在调用子函数时,就是让程序转移到函数的入口地址开始执行。
(3)我们可以定义一个指针变量用来指向函数,然后通过使用该指针变量调用此函数。
指向函数的指针:就是能够存放某个函数入口地址的指针变量。
总结了一下,函数指针有两个用途:一个是调用函数,另一个是做函数的参数
函数指针定义的一般形式:
数据类型 (*指针变量名)(参数表);
例如:
int (*p)(); // p为指向返回值为整型数据的函数的指针
float (*q)(float,int); // q为指向返回值为浮点型数据的函数的指针
2.函数指针调用函数的步骤
(1)函数指针变量先要指向函数
定义了指向函数的指针变量,就可以在指针变量与特定函数之间建立关联,让指针变量指向特定函数。
要注意一下:
(1)指针变量只能指向定义时所指定的一类函数。
(2)一个指针变量可以先后指向多个不同的函数。
具体代码:
#include <stdio.h>
int arr_add(int (*arr)[4], int n, int m )
void main()
{
int a[3][4] = {1,3,5,7,9,11,13,15,17,19,21,23};
int *p, total1, total2;
int (*pt)(int (*arr)[4], int n, int m );
pt=arr_add;
total1 = arr_add( a,3,4 );
total2 = (*pt)( a,3,4 );
printf( "total1 = %d, total2 = %d\n", total1,total2 );
}
int arr_add(int (*arr)[4], int n, int m )
{
int i, j, sum=0;
for(i=0;i<n;i++)
for( j = 0; j < m; j++ )
sum += arr[i][j];
return (sum);
}
- c函数指针详解
- c函数指针详解
- c函数指针详解
- c函数指针详解
- c :函数指针详解
- C函数指针详解
- c函数指针详解
- c函数指针详解
- c函数指针详解
- c函数指针详解
- c函数指针详解
- c++/c 函数指针详解
- 【C语言】指针函数和函数指针的区别及函数指针详解
- 详解c/c++函数指针
- C语言函数指针详解
- C/C++ 函数指针详解
- c和指针详解------函数
- c的函数指针
- 在eclipse下使用java调用weka【第一步】
- ThinkPad T440s(20AQS01100)
- iOS NSString 和NSData 转换
- 第七章 查找 知识导图
- iOS5.0新功能之——NSJSONSerialization解析JSON数据
- C++ 函数指针的详解
- Java线程:线程状态的转换
- 回溯法+奇偶剪枝——Hdu 1010 Tempter of the Bone
- Cocos2dx多点触摸实例
- 第一篇博客
- MySQL优化—工欲善其事,必先利其器之EXPLAIN
- First Step
- csharp: using OleDb Getting the identity of the most recently added record
- Unity3D学习之(GUI基础)