
正文
c语言中函数指针的调用 c语言函数指针的用法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言指向函数的指针的调用
#includestdio.h
int *d_bubblesort(int a[],int n)//数组长度为nc语言中函数指针的调用的冒泡降序排序
{
int i,j;
int temp;
for(i=0;in;i++)
{
for(j=n-1;ji;j--)
{
if(a[j]a[j-1])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
return a;
}
void main()
{
int i;
int *p=NULL;
int a[10]={6,5,4,1,2,3,9,8,7,10};
int *(*fun)(int*,int);
fun=d_bubblesort;
p=fun(a,10);
for(i=0;i10;i++)
{
printf("%d\t",p[i]);
}
}
相关问答
Q1: C语言指针函数调用怎么办啊?
上述应该是函数调用c语言中函数指针的调用,传参数应该是已经定义好c语言中函数指针的调用的c语言中函数指针的调用,如下c语言中函数指针的调用:
GOODS
goods[100];//
此处根据需要变化100
case
1:
inquire_name(goods);break;
case
2:
inquire_num(goods);break;
Q2: C语言调用函数指针
并不是不规范的问题,你子程序写法只能在子程序中输出正确的数据,而在主函数中无法得到交换过的x和y的值。参考程序运用指针让子程序去读写a和b的值,在子程序执行完成后,a和b的值确实得到了交换。
你的程序中子程序采用的不是指针类型参数,这样子程序无法将交换过后的值传回来。
Q3: C语言函数指针调用
void point(char *p){ p+=3; } //加上void比较好
char b[4]={'a','b','c','d'}, *p=b; //写在同一行,p是char*的
point(p);// 这里传递的是指针,在函数里面改指针是“临时变量”,不是局部变量
//临时对象不会被记录,如果改p指向的内存就可以被记录。
printf("%c\n", *p); // 输出结果为a,因为p是扔指向b[]其实位置
答案为a
Q4: C 语言中指针函数是如何调用的??
整个程序c语言中函数指针的调用的目c语言中函数指针的调用的是对一组数据进行求最大值、最小值或平均值的操作,通过输入的指令进行相应的操作。按照不用函数指针的思路,程序大概会写成这样c语言中函数指针的调用:(以下为伪代码)
最大值函数{...}
最小值函数{...}
平均值函数{...}
main{
输入d,则调用 最大值函数
输入x,则调用 最小值函数
输入p,则调用平均值函数
}
不过可以发现如下几点:
· 三个函数的参数形式与返回值都是完全一样的
· 按上述方法写代码,每次调用都要写清楚参数,略显啰嗦
所以就使用函数指针来重新改写代码
GetOperation这个函数本身,就是根据输入指令找到对应的 操作函数并作为函数指针返回它,然后main里直接通过函数指针调用,调用代码只需要写一次,而且甚至不用关心这个函数指针代表的到底是哪个函数
这个程序里只有三个对数据的操作所以函数指针的优点不是很明显。假设有多大100种对数据的操作,如果不使用函数指针,就要不停地写if else if else if...,使用函数指针,甚至可以事先建立一个指令字符与操作函数指针的对应列表,运行时直接在列表里搜索抽取,代码就显得干净利索
GetOperation(c)(dbData,iSize)这句话的具体执行操作是:
(下面假设输入c语言中函数指针的调用了c='d')
首先执行GetOperation('d'),该函数返回得到GetMax(的指针),再执行GetMax(bData,iSize),即对数据求最大值的操作,函数返回得到最大值
c语言中函数指针的调用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数指针的用法、c语言中函数指针的调用的信息别忘了在本站进行查找喔。







