C语言指向函数的指针的调用

C语言指向函数的指针的调用,第1张

#include<stdioh>

int d_bubblesort(int a[],int n)//数组长度为n的冒泡降序排序

{

int i,j;

int temp;

for(i=0;i<n;i++)

{

for(j=n-1;j>i;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;i<10;i++)

{

printf("%d\t",p[i]);

}

}

这种方式叫做“用指针函数creat()的返回值来传递动态内存”,这是一个C语法

首先你要注意,子函数creat()用了malloc动态申请内存,而return返回的是指针变量所指向的地址,而不是指针!相当于将你所申请的动态内存返回给主函数

int fun(void)//这里是指针函数

{

int p = (int ) malloc (int);//动态申请内存//p在这里指向了一块合法内存的地址

return p;

}

void main(void)

{

int q = NULL;

q = fun();//fun()返回指针p所指向的地址,(指针p是在栈上创建的,所以fun()函数运行完,指针所分配的内存被系统自动释放)这时q指向p,得到了malloc所申请到的内存

free(q);//释放动态内存

}

必须有,其实值就是这个__FUNCTION__这是库里的一个宏定义,会 *** 作取函数名

下面的程序你可以运行看看,就是你想要的

#include <stdioh>

#include <stdlibh>

#define LOG() printf("func here %s\n", __FUNCTION__)

void func(){

LOG();

}

int main(){

LOG();

func();

//system("pause");

}

以上就是关于C语言指向函数的指针的调用全部的内容,包括:C语言指向函数的指针的调用、C语言怎么让一个函数返回指针、c语言 如何打印函数指针名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10128725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存