c语言调用指针指向的函数 c语言如何使用指针

C语言指向函数的指针的调用#includestdio.h
int *d_bubblesort(int a[],int n)//数组长度为n的冒泡降序排序
{
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]);
}
}
在C语言中 , 指向函数的指针怎么调用函数?1楼感觉对函数指针不是很c语言调用指针指向的函数了解,就不评论c语言调用指针指向的函数了. 2楼的基本还可以,但是int (*p)(),然后让它指向max函数,一个包含两个未知量的函数,这在后来的标准c里面是不支持的好像. 3楼吧,那么多*,感觉有点不大对. *是取内容,连着那么* ,我没试过,没有多少意义至少.c语言调用指针指向的函数他11级了,应该也不会怎么有错,你可以试试(我不打算加那么多*, 就不调试了).
程序里面对函数的调用,就是通过函数的入口地址,然转入函数. 这样的话,函数指针的意义就明显了.函数指针指向了函数的入口,即函数指针里是函数的入口地址. 指针不能指向函数这种说法肯定是不对的.话说回来,1楼的老兄可能看错书了,或者记错了.
类型匹配很重要,二楼的声明和使用不一致,这在老版的编译器里也是支持的.那时候ANSI标准还没有制定出来.现在而言,这种定义应该不被支持了才是.
那个声明应该如下:
int (*p)(int , int);
这样才能指向
int name(int,int)型的函数.么有实验过,但按这种写法是不错的肯定.
三楼那个********p,怎么都觉得不对.
如何调用指针函数1.如果是返回值是指针
char* getname()
{
char* pname=new char[23];//返回指针必须是函数释放后并未释放的内存空间,
cout"input your name:\n";//一般返回两种情况,一是在函数中像该函数一样动态分配堆内存
cin.getline(pname,22);//二是返回指针指向参数中地址,如: int* max(int a,int b){ return a; }
pname[22]='\0';
return pname;
}
int main()
{
char* name=getname();
cout"your name is: "nameendl;
delete []name;//记得动态释放分配内存
return 0;
}
2.参数是指针类型
常见的是通过指针或引用交换两个数的值
void swa(int* p1,int* p2)
{
int temp=*p1; *p1=*p2; *p2=temp;
}
int main()
{
int a=2,b=3;
swa(a,b);//传递地址
return 0;
}
附解:你可以把指针看做是一种复合类型,它之所以可以修改参数值,本质是因为
对指针解除引用*p形式是操作的参数所存数据内存空间,但如果它不解除引用,它
并不会修改参数的值:如
void swa(int* p1,int* p2) //函数意思是最初始在函数参数块中定义两个指针p1,p2,使
{//p1指向a,p2指向b , 下面函数体只是使指针指向地址改变,成了
【c语言调用指针指向的函数 c语言如何使用指针】//p1指向b,p2指向a 。但并未对a,b内存空间操作 , 当函数调用结束后,指针p1,p2
//也释放了 , 所以并未起任何作用
int* temp;
temp=p1; p1=p2; p2=temp;
}
int main()
{
int a=2,b=3;
swa(a,b);//传递地址
couta""b;
return 0;
}
这个函数并不会交换a,b的值
C语言调用函数指针并不是不规范的问题c语言调用指针指向的函数,c语言调用指针指向的函数你子程序写法只能在子程序中输出正确的数据,而在主函数中无法得到交换过的x和y的值 。参考程序运用指针让子程序去读写a和b的值,在子程序执行完成后,a和b的值确实得到了交换 。
c语言调用指针指向的函数你的程序中子程序采用的不是指针类型参数,这样子程序无法将交换过后的值传回来 。
C语言关于调用函数指针指向的函数的写法 。不存在正规与不正规问题c语言调用指针指向的函数,但前一种写法(a=ACC(22,33); )可读性要更好一些 。
c语言调用指针指向的函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言如何使用指针、c语言调用指针指向的函数的信息别忘了在本站进行查找喔 。

    推荐阅读