指针函数与函数指针,一看必通
函数指针函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用途:调用函数和做函数的指针变量名) (指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的指针变量,所以可把函数max()赋给ptr作为ptr的值,即把max()的入口地址赋给ptr,以后就可以用ptr来调用该函数,实际上ptr和max都指向同一个入口地址,不同就是ptr是一个指针变量,不像函数名称那样是死的,它可以指向任何函数,就看你想怎么做了。在程序中把哪个函数的地址赋给它,它就指向哪个函数。而后用指针变量调用它,因此可以先后指向不同的函数。不过注意,指向函数的指针变量没有++和--运算,用时要小心。
指针函数
指针函数,指针函数是指带指针的函数,即本质是一个函数。函数都有返回类型(如果不指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”。例如下面一个返回指针函数的例子:
#include <stdio.h>
float *find(float(*pionter),int n);//函数声明
int main(void)
{
static float score[]={{60,70,80,90},{56,89,34,45},{34,23,56,45}};
float *p;
int i,m;
printf("Enter the number to be found:");
scanf("%d",&m);
printf("the score of NO.%d are:\n",m);
p=find(score,m-1);
for(i=0;i<4;i++)
printf("%5.2f\t",*(p+i));
return 0;
}
float *find(float(*pionter),int n)/*定义指针函数*/
{
float *pt;
pt=*(pionter+n);
return(pt);
}共有三个学生的成绩,函数find()被定义为指针函数,其指针变量。pointer+n指向score的第n+1行。*(pointer+1)指向第一行的第0个元素。pt是一个指针变量,它指向数组的首地址传给pointer.
**** Hidden Message *****
**** Hidden Message *****
再过两天就学这个了{:1_1:} 向大师好好学习 学无止境,咱来瞅瞅!~ 我也要学!!!!:big:big:big:big:big 支持支持支持 支持一下! 支持支持支持~ 学习一下 看看啊 学习一下{:1_1:}{:1_1:} 更看不懂了 彻底懵了 感谢楼主无私奉献!! 你看后面两个字就明白了
指针函数是函数
函数指针是指针 学习了!!! {:1_1:}指针不好懂 糖心 发表于 2014-3-16 21:15 static/image/common/back.gif
再过两天就学这个了
加油,,,,, qaed 发表于 2014-3-16 22:35 static/image/common/back.gif
我也要学!!!!
加油啊,指针刚开始确实不太好用 蒲公英花开 发表于 2014-3-17 09:05 static/image/common/back.gif
更看不懂了 彻底懵了
说白了就是指针函数是函数,这个函数返回的是指针,而函数指针是一个指针,它指向一个函数 沉思的牛 发表于 2014-3-17 12:25 static/image/common/back.gif
你看后面两个字就明白了
指针函数是函数
函数指针是指针
是的,就是这样,,,,, 看的有点发晕。。。