C++ 指针函数的详解

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);

}

时间: 2024-10-10 21:57:10

C++ 指针函数的详解的相关文章

函数 MultiByteToWideChar() 详解

函数原型: int MultiByteToWideChar( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lpWideCharStr, int cchWideChar ); 补充:如果ANSI代码页允许在不同的计算机上不相同,甚至在单台计算机上不一样,将会导致数据崩溃.为了代码页一致性,应用程序应该使用Unicode编码,如UTF-8或者UTF-16,而不是使用特殊的代码页,除了早期标

php中的PDO函数库详解

PHP中的PDO函数库详解 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高效.目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错的选择. PDO中包含三个预定义的类 PDO中包含三个预定义的类,它们分别是 PDO.PDOStatement 和 PDOException. 一.PDO PDO->beginTransaction(

PE文件结构与函数导出表——详解与实例

PE文件结构与函数导出表--详解与实例 随着windows系统从Xp升级到Win7.Win8, 从32位升级到64位,PE文件结构在整体未变的情况下发生了一些小的变动,一方面是推荐的程序装载地址未采用,另一方面,导出函数序号不再是简单的升序,而是一定程度上的进行了乱序.本文首先对PE文件结构进行了详尽的解说,接着介绍了如何得出函数导出表,整个过程采用SysWoW64目录下的wininet.dll实例进行说明.在介绍过程中,明确指出了Win7.Win8等新系统相对Xp带来的区别. 文章链接:htt

Python学习入门教程,字符串函数扩充详解

因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习并参与本教程的完善与写作.请在下方讨论区,回复相关问题.一起完善本文章教程的书写. Python字符串常用函数. 声明字符串变量: str = ‘关注做全栈攻城狮,写代码也要读书,爱全栈,更爱生活.’ 下面所有字符串函数函数,是对变量str进行操作: 求字符串长度: 函数使用: 运行结果: 值得注意

自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解

'*************************************************************************'**模 块 名:自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解'**说    明:蓝凤凰设计商城 浴火凤凰-郭卫 | 蓝凤凰-魔灵 | 郭卫-icecept'**创 建 人:浴火凤凰-郭卫'**日    期:2015年10月10日  23:13:55'**修 改 人:浴火凤凰-郭卫'**日    期:'**描   

ThinkPHP源码阅读2-----C函数配置文件详解

ThinkPHP的配置非常灵活,可自定义加载.大概看了一下,一共有这几个地方会加载配置文件,方便以后的读取 /** * 获取和设置配置参数 支持批量定义 * * @param string|array $name * 配置变量 * @param mixed $value * 配置值 * @return mixed */ function C($name = null, $value = null) { static $_config = array (); // 无参数时获取所有 if (emp

wp_list_categories函数用法详解

本以为写完新手教程之后,可以不写新手应用方面的文章了的,可今天又有朋友在群里问如何显示每个分类下文章数量这个基础性问题,看来Wordpress中文化还有很长的一段路要走,我们任重而道远啊!好,解决你的问题先:正如标题所说,Wordpress是用wp_list_categories这个函数来显示分类的,其用法是:< ?php wp_list_categories('arguments'); ?>arguments即参数,默认参数设置为: $defaults = array('show_optio

setInterval()函数用法详解

setInterval()函数用法详解:此函数用途相当广泛,在滚动代码或者焦点图片等等效果中都有应用,下面就通过实例简单介绍一下此函数的用法.setInterval()函数可以规定在按照指定的周期来执行一段函数,也就是说每隔一定事件就开始执行一次指定的函数.语法如下: setInterval(code,interval) 此函数具有两个参数,第一个参数规定要执行的函数,第二个参数规定函数两次执行之间的间隔,单位是毫秒(1秒=1000毫秒).代码实例如下: <!DOCTYPE HTML> <

eval()函数用法详解

eval()函数用法详解:此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法.语法结构: eval(str) 此函数可以接受一个字符串str作为参数,并把此str当做一段javascript代码去执行,如果str执行结果是一个值则返回此值,否则返回undefined.如果参数不是一个字符串,则直接返回该参数,实例如下: eval("var a=1");//声明一个变量a并赋值1. eval("2+3");//执行加运