指针函数 与 函数指针
来源:互联网 发布:网络杀毒软件logo 编辑:程序博客网 时间:2024/06/07 15:12
【指针函数】与【函数指针】区别
指针函数:
#include<stdio.h>#include<string.h>#include<stdlib.h>static int data;int *point_func(int x){ data = x; printf("data's address is %x\n",&data); printf("data's vaule is %d\n",data); return &data; //返回一个指针(data地址)}int main(){ int *ptr; ptr = point_func(999); //将(data地址)赋值给ptr printf("ptr's address is %x\n",ptr); printf("ptr's data is %d\n",*ptr); return 0;}
输出:
data’s address is 804a01c
data’s vaule is 999
ptr’s address is 804a01c
ptr’s data is 999
函数指针
#include<stdio.h>#include<string.h>#include<stdlib.h>//没有参数,没有返回值void func1(void){ printf("i am func1\n");}void func2(void){ printf("i am func2\n");}//有参数,有返回值int func3(int x){ return (x*x);}//有参数,返回指针static int data;int *point_func(int x){ data = x; return &data;}//对应的函数指针定义void (*fptr1)();void (*fptr2)();int (*fptr3)(int x);int * (*fptr4)(int x);int main(){ //两种函数指针赋值方式效果一样 fptr1 = &func1; fptr2 = func2; //推荐 (*fptr1)(); //无参数函数指针调用方式 //两种函数指针调用方式效果相同 (*fptr2)(); //推荐 fptr2(); int value = 10; int value2; fptr3 = func3; value2 = (*fptr3)(value); //有参数,有返回值的函数指针调用方式 printf("value2 = %d\n",value2); fptr4 = point_func; int * ptr = (*fptr4)(value2); //有参数,返回指针的函数指针调用方式 printf("*ptr is %d\n",*ptr); printf("data is %d\n",data); return 0;}输出:i am func1i am func2i am func2value2 = 100*ptr is 100data is 100
0 0
- 指针函数与函数指针
- 指针函数与函数指针
- 函数指针与指针函数
- 指针函数与函数指针
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针 与 指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 指针函数与函数指针
- JMS基本概念
- spring- transaction
- Wireshark理解TCP乱序重组和HTTP解析渲染
- 请立即更新您的iPhone和iPad,间谍工具将会控制其系统漏洞
- ABAP学习笔记
- 指针函数 与 函数指针
- linux查看各个文件大小
- C/C++ 实现htonf和ntof的两种方法
- spring mybatis整合
- 公司内部Wiki,你建立了么?
- mysql下实现窗口分析函数
- MQTT消息协议、服务器及其客户端
- Android7.0 添加快速设定Quick Settings Tile
- 文本数据分析神器—— IBM BigInsights Text Analytics