c语言指针函数函数指针 c语言指针函数有什么用

指针函数和函数指针的区别1、指针函数:指c语言指针函数函数指针的就是返回值是指针c语言指针函数函数指针的函数c语言指针函数函数指针,本质就是个函数 。
2、函数指针:指的是指向函数的指针变量,本质就是个指针 。
用法
1、指针函数:int* func(int a,int b);
普通函数就是int func(int a,int b);,返回值是int,而指针函数就是返回值是指针的函数 , 即返回值是int* 。
2、函数指针:int (*func)(int x,int y);
这里定义c语言指针函数函数指针了一个函数指针,只不过这个指针的格式有点特殊,正常定义的指针是把指针变量放到最后的 , 即int* p ;,p是指针变量,但是函数指针是把指针变量放到了中间,即func是指针变量,而且这是一个指向函数的指针变量 , 而具体指向哪个函数是自己定的 。
c语言函数指针的作用 。C语言中函数指针与普通指针没什么差别 , 只是指向的内容不同而已 。主要作用:
1、实现面向对象编程中的多态性 。
2、回调函数 。
函数指针是指向函数的指针变量 。因此“函数指针”本身首先应是指针变量 , 只不过该指针变量指向函数 。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数 。
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址 。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的 。
函数指针有两个用途:调用函数和做函数的参数 。
C语言-函数指针/*
函数指针,关键是后面两个字“指针”,顾名思义,是一个指向函数c语言指针函数函数指针的指针
原理c语言指针函数函数指针:函数在创建好了后,函数c语言指针函数函数指针的代码会在内存中占有个位置,这时c语言指针函数函数指针我们创造一个指针来指向这个地址,这个指针就叫函数指针
函数指针不可以移动,想要移动指针的位置来指向函数的下一个指令的想法是错误的
函数指针的要求,
1,首先这个指针,要和函数的返回类型一样
2,指针的*和名字,要用小括号括起来//不括起来就是指针函数了,意思就变成,函数返回一个指针了
3,最右边的小括号里形参位置的类型,形参的个数,也要和函数定义时的形参一致 , 只要类型,不要形参名即可,
但是加上形参名也可以,没毛病 , 看上去也更清晰
*/
#include
void swapchar(char *a, char *b)
{
char t;
t = *a;
*a = *b;
*b = t;
}
void swapchar2(char * a2, char * b2)
{
printf("this is swapchar2");
}
int main(void)
{
char chf = 'a', chg = 'j';
void(*p)(char * a, char * b);//定义函数指针、形参名字a、b可有可无 , 但有的话看上去更清晰,只要函数定义的类型、参数类型、以及参数个数,与这个指针一致,那么这个指针p , 就可以指向它
p = swapchar;//p指针接管swapchar函数 , 只要给函数名字,就可以给过去了
printf("chf=%c,chg=%c ", chf, chg);
p(chf, chg);
printf("chf=%c,chg=%c ", chf, chg);
p = swapchar2;//这里把swapchar2函数的地址,给了p , 这时p从swapchar地址,转移到了swapchar2这里 。
p(chf,chg);
return 0;
}
C语言中,指针函数和函数指针有什么区别?在C语言中指针函数和函数指针是两个不同c语言指针函数函数指针的概念,不能混淆 。

推荐阅读