首页 > 编程知识 正文

c语言中的函数原型,C语言指针类型

时间:2023-05-06 20:31:51 阅读:61814 作者:4764

c语言函数指针和指针函数

在学习c语言的过程中,“指针函数”和“函数指针”容易混淆。 最简单的区分方法是查看函数名称前面的指针*星号是否包含在()中。 如果包含则为函数指针,如果不包含则为指针函数。

定义

指针函数:

指针函数是指具有指针的函数。 也就是说,本质是函数,函数的返回类型是某种类型的指针。

类型标识符*函数名称(参数表)

int*f(x,y );

首先,指针函数是函数。 但是,此函数的返回值是地址,函数的返回值必须由相同类型的指针变量接受。 也就是说,指针函数必须具有函数的返回值,并且度量函数必须将函数的返回值分配给相同类型的指针变量。

示例:

浮动* Fun (;

浮动* p;

p=fun(a;

当函数声明返回值为指针时,它将在调用函数中返回地址,以便在实际需要指针或地址的表达式中使用

格式:

类型说明符*函数名称(参数) )

例如:

int *GetDate (;

int*AAA(int,int );

函数常用于返回地址值和返回数组的元素地址。

int*getdate(intwk,int dy );

主()。

int wk,dy;

do {

printf (输入week (1- t ) day )1-7)n );

扫描(% d % d、wk、dk );

}

while(wk1|||wl5||dy1|||dy7 );

printf(%d(n )、*getdate ) wk、dy );

}

int*getdate(intwk,int dy ) {

静态int calendar [5] [7]={

{1、2、3、4、5、6、7}、

{8、9、10、11、12、13、14},

{15、16、17、18、19、20、21},

{22、23、24、25、26、27、28},

{ 29,30,31,-1}

(;

返回日历[ wk-1 ] [ dy-1 ];

}

的功能是子函数返回数组中某个元素的地址,并输出该地址的值。

函数指针

函数指针是指向该函数的指针变量,本质上是指针变量

int(*f ) ) int x ) /函数指针) /

f=func; 将func函数的起始地址设定为函数f*/

指向函数的指针包含函数地址的条目地址,可以通过该地址调用函数。

声明的格式如下:

类型说明符(*函数名称()参数() ) ) ) ) ) ) ) )。

其实这里不是函数名,应该叫指针的变量名。 此特殊指针指向返回整数值的函数。 指针的声明必须与他对函数的声明一致

指针名称和指针运算符外部的括号是函数的原型声明,该函数更改默认运算符的优先级,如果没有括号,则返回整数指针。

例如:

void(*FPTR ) );

有两种形式可以将函数的地址分配给函数指针:

fptr=Function;

fptr=Function;

地址运算符不是必需的。 因为只有一个函数标识符表示其地址,并且对于函数调用,还必须包括用括号括起来的参数表。

从指针调用函数有两种方法:

x=(*fptr ();

x=fptr (;

第二种格式看起来与函数调用类似,但一些编程猴子倾向于使用第一种格式。 这是因为它清楚地表明要用指针而不是函数名称调用函数。

举个例子

语音(*功能) );

语音文件功能(,EditFunc );

主()。

funcp=FileFunc;

(*Funcp ) );

funcp=EditFunc (;

(*funcp ) );

}

voidfilefunc(}

printf (文件函数(n ) );

}

Void编辑Unc

printf (编辑函数(n ) );

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。