C/C++ 指针函数 与 函数指针

指针函数是个函数,是返回指针类型到函数。

函数指针是个指针,是指向函数地址到指针。

区分两者的关键点是,函数名是否用*和括号“包围”起来。

 1 #include <stdio.h>
 2 int *create_node(int);  //指针函数声明
 3 int *(*fun)(int);   //函数指针声明, 指向返回int*且有一个int参数的函数.
 4
 5 //定义一个指针函数(返回值是指针的函数)
 6 int *create_node(int val){
 7     int *a = new int;
 8     *a = val;
 9     return a;
10 }
11
12 int main (){
13     //通过函数名称调用函数, 这个函数名称就是函数的指针
14     //函数名称指向就是函数到地址
15     int *a = create_node(4);
16     printf("a_val : %d\n", *a);
17     delete a;
18
19     //函数指针是个指针变量
20     fun = create_node;
21     int *b = fun(5);
22     printf("b_val : %d\n", *b);
23     delete b;
24
25     return 0;
26 }

就简单说明到这里吧, 看代码注释。^_^

时间: 2024-10-10 01:18:41

C/C++ 指针函数 与 函数指针的相关文章

c指针 --笔记2返回指针值的函数

返回指针值的函数 一般带回指针值的函数,定义形式为: int *a (int x, int y); 看这个经典案例: #include <stdio.h> int main(int argc, char const *argv[]) { double score[][4] = {{60.0, 70.0, 80.5, 20.1}, {60.0, 70.0, 80.5, 21.1}, {60.0, 70.0, 80.5, 22.1}}; double *search(double(*pointer

深入浅出剖析C语言函数指针与回调函数(二)

上一篇博文的地址: http://blog.csdn.net/morixinguan/article/details/65494239 这节,我们来看看函数指针与回调函数在Linux内核中的应用. 从上节我们了解到,函数指针和回调函数在开发者和用户之间的一个例子,那么这节,我将引用Linux内核中文件操作结构体来详细的说明. 我们首先来看到这个结构体,这段代码位于linux内核的include/linux/fs.h中,由于代码众多,我只截取几个最基本的例子: File_operations文件操

C语言函数、函数指针解析

函数.函数指针的理解: 函数的定义: void myfunc(void) { } 函数的声明 void myfunc(void); 函数指针的定义.初始化.赋值: 定义:void (*funcp)(void); 初始化: void (*funcp)(void) = &myfunc; 赋值 void (*funcp)(void); funcp = &myfunc; 函数调用:(*funcp)(); funcp(); 也可以这样赋值:void (*funcp)(void); funcp = m

数组指针、指针数组、函数指针、指针函数 -----笔记

1.数组的四种访问方式 定义数组 a[]; 指针 *p 指向数组a; (1) 利用数组的下表进行访问 a[i]; (2) 数组名+地址的偏移量i *(a+i) (3) 利用指针 p 进行下表访问 p[i] (4) 指针p + 地址的偏移量i *(p+i) 一维数组数组名:相当于一个单指针 2. 数组指针(指针)     指针数组(数组) 函数指针(指针)     指针函数(函数)    -------->只看后边两个字就能够区分是指针还是数组或函数 _______________________

【转】 指针函数与函数指针的区别

一. 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1.指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某一类型的指针 类型标识符    *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值.函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量. 表示: float *fun();

C言语指针变量作为函数参数

在C言语中,函数的参数不只可所以整数.小数.字符等详细的数据,还可所以指向它们的指针.用指针变量作函数参数可以将函数内部的地址传递到函数外部,使得在函数外部可以操作函数内部的数据,而且这些数据不会跟着函数的完毕而被烧毁.像数组.字符串.静态分派的内存等多是一系列数据的聚集,没有方法经过一个参数全体传入函数外部,只能传递它们的指针,在函数外部经过指针来影响这些数据聚集.有的时分,关于整数.小数.字符等根本类型数据的操作也必需要借助指针,一个典型的例子就是交流两个变量的值.有些初学者能够会运用下面的

函数指针与回调函数

一.函数指针 1.  函数指针就是一个指针变量,用来指向函数地址.正在运行的程序(进程)在内存中占据一定的空间.进程包括编译好的程序代码和需要使用的变量.因此,程序代码中的函数就是一些字符域,要得到一个函数地址,也就是得到这些字符域的起始地址. 2. 函数指针的三种形式:    指向普通C函数的函数指针 --- C语言中的函数指针    指向C++类静态成员函数的函数指针 --- C++    指向C++类非静态成员函数的函数指针 --- C++ 函数指针的本质自然也就是函数地址.  类成员函数

指针函数与函数指针

指针函数与函数指针:函数名之前的指针×是不是被括号包含,如果被包含就是函数指针,反之则是指针函数. 1.指针函数是指带指针的函数,即本质是一个函数,函数返回时某一个类型的指针 类型符 *函数名(参数名) 指针函数的返回值是一个地址值,指针函数一定有函数返回值,而至在主调函数中函数返回值必须赋值给同类型的指针变量: float *fun(); float *p = fun(); 2.函数指针是指向函数的指针变量,即本质是一个指针变量 int (*f)(int x) f =func; 指向函数的指针

函数指针和回调函数

函数指针 函数指针是指向函数调用地址的指针.它和函数名究竟有什么关系呢?且看下文. 且看一小程序 首先,先请看下边程序: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 void func(string s) 6 { 7 cout << s << endl; 8 } 9 10 void (*pFunc)(string s); // 不能够写成 void *pFunc(s

了解指针(5)-- 指针和函数

就像数组名是指向数组的第一个元素的常指针一样,函数名也是指向函数的常指针.可以声明一个指向函数的指针变量,并且用这个指针调用其他函数(只要这个函数和你的函数指针在签名.返回.参数值方面一致即可). 例1: long  (* fun) (int) 上面就是一个函数指针,该指针返回值类型是long,所带的参数类型是int. 例2: int fun(char *,int); int (*pfun)(char *,int); pfun=fun; int a=(*pfun)("abcdefg",