首页 > 编程知识 正文

c语言结构体数组,c语言指针教学

时间:2023-05-04 01:33:21 阅读:61813 作者:3750

一、指针函数

int*f(inta,int b ); //返回值为int *,指针类型的返回值

上述函数声明也可以写为:

int*f(inta,int b );

将指针标志*紧贴int,远离函数名称f,会变得容易理解。 f是函数名称,返回类型是int类型的指针。

指针函数是指向调用方返回地址。

示例1 :

//001.c

#包含

int*f(inta,int b ); //声明指针函数

int main () )

{

printf------------startn ';

int *p1=NULL;

打印机(thememeoryaddressofp1=0x % xn (,P1 );

P1=f (1,2 );

打印机(thememeoryaddressofp1=0x % xn (,P1 );

printf((*p1=%d(n ),*P1 );

printf------------endn ';

getchar (;

返回0;

}

int*f(inta,int b ) ) )。

{

int*p=(int* ) malloc ) sizeof (int );

printf (thememeoryaddressofp=0x % xn ',p );

短信(p,0,sizeof ) int );

*p=a b;

printf((*p=%d(n ),*p );

返回p;

}

指针函数f返回的类型是指针类型,指针函数f的返回值p和f被指派给的指针p1的地址相同

二.函数指针

函数指针是指针,但指针是指函数,而不是常规的基本数据类型或类对象。

int(*f ) ) int a,int b ); //声明函数指针

//该函数指针f是指定返回值为整数、有两个参数、两个参数的类型为整数的函数

函数指针和指针函数的最大区别在于函数指针的函数名称是指针。 也就是说,指针类型的标志类型“*”在函数名称之前。

当然,函数指针的返回值也可以是指针。

示例2 :

//002.c

//求出两个整数的大值和小值

#包含

intmax(inta,int b ) {

return a b? a : b;

}

intmin(inta,int b ) {

return a b? a : b;

}

int(*f ) ) int,int ); //声明一个函数指针,其返回类型为int,两个参数类型为int的函数

int main () )

{

printf------------startn ';

f=max; //函数指针f是指求出较大值的函数max

intc=((f ) ) ) 1,2 );

printf(themaxvalueis%d(n (,c );

f=min; //函数指针f是指求出最小值的函数min

c=((f ) ) 1,2 );

printf(theminvalueis%d(n (,c );

printf------------endn ';

getchar (;

返回0;

}

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