关于函数指针--简介

简介: 函数指针说白了,,,,函数的地址 现在看一个简单的--先定义一个函数指针 void (*f1)();就是这样定义--指向的是一个void类型的 假设定义了另一个 void f2(); 可以 f1 = &f2 或者 f1=f2; 直接代码了 #include #include vo...

函数指针说白了,,,,函数的地址

现在看一个简单的--先定义一个函数指针

void (*f1)();就是这样定义--指向的是一个void类型的

假设定义了另一个 void f2();

可以 f1 = &f2 或者 f1=f2;

直接代码了

#include<stdio.h>
#include<stdlib.h>
void (*f1)(); 
void f2();

void main()
{
  f1=f2;

  (*f1)();
}
void f2()
{   
    printf("11111\n");
}  

 


f1=f2;这个好理解--把f2的地址给了f1呗;
(*f1)();这一句,要想一下*f1中的*在想一想在普通指针中什么意思  取取取取取取  要想--哎呀*f1不就相当于f2吗  所以(*f1)();不就相当于f2();

看下一个

#include<stdio.h>
#include<stdlib.h>
void (*f1)(int x); 
void f2(int x);

void main()
{
  f1=f2;

  (*f1)(2);
}
void f2(int x)
{   
    printf("x=%d\n",x);
}  

 

也没什么难的

void (*f1)(int x); 
void f2(int x);
不过好像这两个的类型要一样,,,现在都是无返回值的带int型的参数的函数
 
 再看下一个

#include<stdio.h>
#include<stdlib.h>
int (*f1)(int x); 
int f2(int x);

void main()
{
  f1=f2;

  (*f1)(2);
}
int f2(int x)
{   
    printf("x=%d\n",x);
    return 0;//必须返回点东西,不然编译会报错
}  

 

运行结果和上面一样--理所当然



#include<stdio.h>
#include<stdlib.h>

void f2();
void f3( void(*f4)() );
void main()
{
    f3(f2);
}
void f2()
{   
    printf("1111\n");
}
void f3( void(*f4)() )  
{
    (*f4)();
}

其实感觉也没什么--和    void f3( *P ){a =*P }  一样的的道理

 
目录
打赏
0
0
0
0
42
分享
相关文章
C语言:二级指针简介
二级指针即为二级指针变量,用于存放一级指针变量的地址。 一级指针变量是用来存放普通变量的地址(地址其实就是一些数字),一级指针变量也是一个变量,存放普通变量地址的同时自身也是有地址的。那么一级指针变量的地址就需要二级指针变量来存放。
93 0
##################简介指针##################
本文介绍了C语言中数组指针、函数指针及其应用。首先,解释了数组指针的概念,展示了如何用数组指针操作二维数组。接着,详细说明了函数指针的定义和使用,包括通过函数指针调用函数和构建简单的计算器程序。此外,还介绍了函数指针数组的应用,如实现加减乘除计算器和回调函数的使用。最后,讲解了标准库函数`qsort`的用法及其自定义实现,涵盖了整型、字符型和结构体数组的排序示例。文中通过具体代码实例帮助读者更好地理解和应用这些概念。
|
5月前
|
C++
C++(十八)Smart Pointer 智能指针简介
智能指针是C++中用于管理动态分配内存的一种机制,通过自动释放不再使用的内存来防止内存泄漏。`auto_ptr`是早期的一种实现,但已被`shared_ptr`和`weak_ptr`取代。这些智能指针基于RAII(Resource Acquisition Is Initialization)原则,即资源获取即初始化。RAII确保对象在其生命周期结束时自动释放资源。通过重载`*`和`-&gt;`运算符,可以方便地访问和操作智能指针所指向的对象。
|
9月前
|
【C++入门到精通】智能指针 shared_ptr循环引用 | weak_ptr 简介及C++模拟实现 [ C++入门 ]
【C++入门到精通】智能指针 shared_ptr循环引用 | weak_ptr 简介及C++模拟实现 [ C++入门 ]
287 0
【C++入门到精通】智能指针 shared_ptr 简介及C++模拟实现 [ C++入门 ]
【C++入门到精通】智能指针 shared_ptr 简介及C++模拟实现 [ C++入门 ]
161 0
|
9月前
|
【C++入门到精通】智能指针 auto_ptr、unique_ptr简介及C++模拟实现 [ C++入门 ]
【C++入门到精通】智能指针 auto_ptr、unique_ptr简介及C++模拟实现 [ C++入门 ]
85 0
【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )
【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )
184 0
【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )
【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )
【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )
174 0

热门文章

最新文章