C语言中
函数指针 用法:在 C语言中 ,指针被 广泛使用 ,而函数 指针是最 为高级的 用法之一 ,也是容 易疑惑的 地方之一 。 看下 面这段代 码: # incl ude void F(i nt a , in t* o utpu t) { pri ntf( 'a = %d' , a) ; *o utpu t = a + 1; } typ edef voi d (* FUNC )(); int mai n() { FU NC f = F ; in t re t = 0; f (3, & ;ret ); p rint f('r et = %d' , re t); retu rn 0 ; } 上面看出 FUN C 的类 型是与F 的类型不 匹配的, 这样可以 通过编译 吗? 答 案是: 可以的。 由于在C 语言中编 译函数的 时候,是 仅仅将其 函数名作 为该函数 的 唯一 标识,为 其分配相 应地址。 所以虽然 FUNC 与 F 的类型不 一致,但 是对于编 译器看来 都是两 个地址, 是无所谓 的。 用 上面的特 点,可以 写出非常 通用的函 数指针类 型, t yped ef i nt ( *FUN C)() ; 这里 之所有要 有返回值 ,是用来 标识该函 数是否执 行成功的 错误代码 标志。 随说做了 有一段时 间的C了 ,但尽然 没有搞明 白函数指 针的用法 ,见到了 也没有好 好研究, 今天终于 有时间了 ,在网上 搜了一下 ,终于弄 懂了.原 来就是定 义了一个 指针变量 ,只不过 形式有点 怪罢了. 其实还是 当成指针 用就行了 ! 一般 有两种用 法: 1 定义函数 指针 i nt ( *fun ctio nPoi nt)( int, int )--- -这只是 定义了一 个指向函 数的指针 int a(i nt a ,int b)- ---- ---- ---- ---这 是与之相 符的函数 原型 v oid main ()-- ---- ---- ---- ---- ---- -使用 { fu ncti onPo int = a; ---- ---- ---- 先赋值 func tion Poin t(1, 2);- ---- ---- -调用 } 2用 type def定 义使用 type def int (*fu ncti onPo int) (int ,int );-- ---- ---- 定义了一 种类型名 为fun ctio nPoi nt的指 针 in t a( int a, i nt b )--- ---- ---- ---- ---- ---- ---- --函数 原型 v oid main () { fun ctio nPoi nt f un;- ---- ---- ---- ---- ---- ---- --定义 指针 f un = a;- ---- ---- ---- ---- ---- ---- ---- ---- ---- 赋值 f un(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语言