首页 > 编程知识 正文

c语言malloc函数用法,c语言数组定义

时间:2023-05-03 08:09:17 阅读:40448 作者:1937

内容*和---同优先级,右键

*p; 等效于//*(p ),效果:先取p的内容,将p

注意:

数组名称是常数,不能

[]的优先顺序是*

//p和[]先组合,指示p为数组

int *p[5]; //p是包含五个int *元素的数组

//p和*先组合,指示p是指针

int(p ) [5]; //p是指向int [5]数组的指针

() )的优先顺序为*

函数的调用既可以使用函数名称,也可以使用函数指针

int*f(intI ); //f和) )组合表示f在函数中返回指针

int(*f ) ) int i ); //f和*相组合,f是指向函数的指针

不能运算p等函数指针

函数指针智能由相同类型的函数名称、参数和返回类型相同的函数指针和NULL初始化

使用函数指针:

#包含

#define GET_MAX 0

#define GET_MIN 1

intget_max(intI,int j ) {

return ij? I; j;

}

intget_min(intI,int j ) {

return ij? j:i;

}

intcompare(intI、int j、int flag ) {

int ret;

int(*p ) ) int,int ); //函数指针,形状参数为2个int,返回值为int

if(flag==get_max ) {

p=get_max; //函数指针赋值

}else{

p=get_min; //按函数名称为函数指针赋值

}

ret=p(I,j );

返回ret;

}

int main () )。

int i=5,j=10,ret;

ret=compare(I,j,GET_MAX );

返回0;

}

将函数指针作为形状参数

intget_big(intI,int j ) {

return ij? i:j;

}

intget_max(intI,int j,int ) p (int,int ) )//声明

int ret;

ret=p(I,j );

ret=p(ret,k );

返回ret;

}

int main () )。

ret=get_max(I,j,get_big ); //按函数名称分配函数指针

返回0;

}

函数指针还可以返回值

intget_big(intI,int j ) {

return ij? i:j;

}

int(*get_function(inta ) ) int,int ) ) /返回值为函数指针int(* ) int,int ) ) ) )。

printf(thenumberis%d(n ),a );

return get_big;

}

int main () )。

int i=5,j=10,max;

int(*p ) ) int,int ); //声明函数指针

p=get_function(100; //用返回值为函数指针赋值

max=p(I,j );

printf(themaxis%d(n ),max );

返回0;

}

分析:

int(*function(inta ) ) int,int ) ) )。

高于* )优先级高,函数名称function和(组合,function函数的自变量为int a

返回值为函数指针int(* ) (int,int ) )

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