

C语言中函数指针用法:在C语言中,指针被广泛使用,而函数指针是最为高级的用法之一,也是容易疑惑的地方之一。 看下面这段代码: #include void F(int a, int* output) { printf('a = %d', a); *output = a + 1; } typedef void (*FUNC)(); int main() { FUNC f = F; int ret = 0; f(3, &ret); printf('ret = %d', ret); return 0; } 上面看出 FUNC 的类型是与F的类型不匹配的,这样可以通过编译吗? 答案是: 可以的。由于在C语言中编译函数的时候,是仅仅将其函数名作为该函数的 唯一标识,为其分配相应地址。所以虽然FUNC 与 F的类型不一致,但是对于编译器看来 都是两个地址,是无所谓的。 用上面的特点,可以写出非常通用的函数指针类型, typedef int (*FUNC)(); 这里之所有要有返回值,是用来标识该函数是否执行成功的错误代码标志。 随说做了有一段时间的C了,但尽然没有搞明白函数指针的用法,见到了也没有好好研究,今天终于有时间了,在网上搜了一下,终于弄懂了.原来就是定义了一个指针变量,只不过形式有点怪罢了.其实还是当成指针用就行了! 一般有两种用法: 1定义函数指针 int (*functionPoint)(int, int)----这只是定义了一个指向函数的指针 int a(int a,int b)----------------这是与之相符的函数原型 void main()-----------------------使用 { functionPoint = a;------------先赋值 functionPoint(1,2);----------调用 } 2用typedef定义使用 typedef int (*functionPoint)(int,int);----------定义了一种类型名为functionPoint的指针 int a(int a, int b)-----------------------------函数原型 void main() { functionPoint fun;---------------------------定义指针 fun = a;-------------------------------------赋值 fun(1,2);---------------------------------使用 } 函数就是这个函数的指针.
小编还为您整理了以下内容,可能对您也有帮助:
c语言int函数的使用
#include<stdio.h>
int main()
{int num;double sum = 0;int count = 0;while(scanf("%d", &num) && num != -1)//输入-1停止}
{sum += num;count++;}
printf("%f", sum / count);
return 0。
扩展资料:
指针:
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
参考资料来源:百度百科-c语言
c语言int函数的使用
#include<stdio.h>
int main()
{int num;double sum = 0;int count = 0;while(scanf("%d", &num) && num != -1)//输入-1停止}
{sum += num;count++;}
printf("%f", sum / count);
return 0。
扩展资料:
指针:
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
参考资料来源:百度百科-c语言
