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

简介: 指针函数是个函数,是返回指针类型到函数。 函数指针是个指针,是指向函数地址到指针。 区分两者的关键点是,函数名是否用*和括号“包围”起来。 1 #include 2 int *create_node(int); //指针函数声明 3 int *(*fun)(int); //函数指针声明, 指向返回int*且有一个int参数的函数.

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

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

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

 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 }

 

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

相关文章
|
7天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
25 4
|
23天前
|
存储 C语言 C++
如何通过指针作为函数参数来实现函数的返回多个值
在C语言中,可以通过将指针作为函数参数来实现函数返回多个值。调用函数时,传递变量的地址,函数内部通过修改指针所指向的内存来改变原变量的值,从而实现多值返回。
|
23天前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
23天前
|
存储 搜索推荐 C语言
如何理解指针作为函数参数的输入和输出特性
指针作为函数参数时,可以实现输入和输出的双重功能。通过指针传递变量的地址,函数可以修改外部变量的值,实现输出;同时,指针本身也可以作为输入,传递初始值或状态。这种方式提高了函数的灵活性和效率。
|
27天前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
1月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
45 6
|
1月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
23 0
C++ 多线程之线程管理函数
|
1月前
利用指针函数
【10月更文挑战第2天】利用指针函数。
17 1
|
1月前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
38 1
|
1月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
154 1