C语言关于指针函数与函数指针个人理解
Posted 再拟红笺递薛涛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言关于指针函数与函数指针个人理解相关的知识,希望对你有一定的参考价值。
1,函数指针
顾名思义,即指向函数的指针,功能与其他指针相同,该指针变量保存的是所指向函数的地址。
假如是void类型函数指针定义方式可以是 void (*f)(参数列表);亦可以先用 typedef void (*F)(参数列表),
F f.但要注意函数指针的类型要与函数类型相同.
下面举个简单的例子
1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef void (*F)(); 4 5 void print_hello() //简单定义一个无参数的打印函数 6 { 7 printf("hello ~\n"); 8 } 9 10 void main() 11 { 12 F f1; //此处相当于 void (*f1)(); 13 void (*f2)(); 14 15 f1 = print_hello; 16 f2 = print_hello; 17 18 f1(); 19 f2(); 20 21 system("pause"); 22 }
2,指针函数
指针函数即返回值为指针的函数。例如 int *a()、char *b()...分别代表返回值为整形指针,字符型指针的函数。
下面举个简单的例子
#include<stdio.h> #include<stdlib.h> char *str() //定义一个返回值为字符指针的函数 { char *a = "hello world ~"; return a; } void main() { char *c = str(); //可以在定义的时候同时赋值 char *b; //也可以先定义,后赋值 b = str(); printf("%s\n%s\n",c,b); system("pause"); }
以上是关于C语言关于指针函数与函数指针个人理解的主要内容,如果未能解决你的问题,请参考以下文章
关于JAVA调用C的DLL库中的函数问题,传入一个含有指针的结构体指针