函数指针和指针函数的区别

来源:本站
导读:目前正在解读《函数指针和指针函数的区别》的相关信息,《函数指针和指针函数的区别》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《函数指针和指针函数的区别》的详细说明。
简介:本文介绍了函数指针和指针函数之间的区别以及使用方法。

函数指针和指针函数的区别,函数指针是指向函数的指针,它的定义方式为:int (*f)();指针函数是返回指针的函数,它的定义方式为:int *f()。

写了一个小程序来测验了一下指针函数。

int *func(int *a,int *b);

const int TAB[] = {0x0051,0x1011,0x1111,0x2222};

void main(void)

{

int *rom_ptr;

int i,*m,*n;

m = TAB;

n = TAB+1;

rom_ptr = func; //获得func函数的首地址

i = func(m,n);

}

int *func(int *a,int *b)

{

int *p1,*p2;

p1 = a;

p2 = b;

return *p1 + *p2;

}

上面用到的是指针函数,函数int *func(int *a,int *b)返回的是指向整形数的指针,主要看调用的格式应该是i = func(m,n); 而不是i = *func(m,n);或者i = func(*m,*n); 最后的结果是i=0x1062。从上面可以看到,获得函数首地址的一种方法是直接rom_ptr = func;就可以了。

下面这段程序是函数指针的用法:

int func(int a,int b);

void main(void)

{

int i,m=1,n=2;

int (*f)(int,int); //定义了一个函数指针;

f = func; //将函数func的首地址赋给f,使它指向函数func;

i = (*f)(m,n); //通过指针f调用函数func

}

int func(int a,int b)

{

return (a+b);

}

上面这段程序定义了一个指向函数int func(int a,int b)的指针int (*f)(int,int),得到的结果为 i="3"。

指针函数 是一个(返回指针的)函数,函数指针 是一个(指向函数的)指针。

提醒:《函数指针和指针函数的区别》最后刷新时间 2024-03-14 01:01:19,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《函数指针和指针函数的区别》该内容的真实性请自行鉴别。