函数指针例程一

S7-200_的指针寻址例程.mwp 不是实例 下载请看清 S7-200_的指针寻址例程 立即下载

有两个我认为值得分析的指针例程,希望大家看了能对大家有帮助

eg1:

#include <stdio.h>

int main()

{

     int a[4]={1,2,3,4};

     int *p1 = (int *)(&a+1);

     int * p2 = (int *)((int)a+1);

     int * p3 = (int *)(a+1);

     printf("%d,%d,%d\n",p1[-1],p2[0],p3[1]);

     return 0;

}

这是第一个例程,编译之后,运行,会打印什么结果呢?

后面会给出答案,但这里希望大家停下来思考,再去看后面的答案.


分析:

p1:&a为整个数组a的地址,&a+1就直接指到数组a的最末端了,然后我们我们再(int *)(&a+1),这样就把指向数组最末端的指针强制转换成int型的指针,这样,后面的打印p1[-1]就是指针向前移动一个int型的距离,直接指到a数组的最后一个元素了,故打印出来是4;

p2:a为数组元素首地址,所以(int)a就是将首地址强制类型转换为int型,再加1,就是将指针指到从第一个元素地址的第二个字节开始取一个int型的数字,也就是0x0200 0000了.

p3:a为第一个元素的首地址,所以a+1就是第二个元素的首地址,所以p3指向a[1],p3[1]就是a[2]了,就是为3.



eg2:

#include <stdio.h>

void f(int a[10000])

{

      printf("%d\n",sizeof(a));

}


int main()

{

      int a[5]={0};

      f(a);

      return 0;

}


直接编译运行,这个打印会是什么呢?




这个打印4,我第一反应就是sizeof(a),应该打印4*10000=40000啊,可是我最后才知道编译器编译的时候,会将a[10000]替换为void f(int *a),这个例程很简单,因为我第一反应是出错了,所以我拿出来在这提醒下自己.

函数指针的使用实例 函数指针的使用,主要用到typedef,其实现功能跟模板类差不多 立即下载

相关推荐

【SABRE 3D, SABRE 3DxT,LAM设备】2025年9月13日-安全配置-准备工作

请遵循本规程将SABRE 3D/3DxT/3D Scimitar系统设置为安全配置,以便能够在电镀单元、APT模块、XMM(或SRD)模块、工厂接口(FI)外壳或中央通道内部及周边区域执行作业p104-p117。在生产过程中暂停调度程序存在一定风险:若待维护模块未离线且在其他模块完成处理前重启调度程序,可能对生产晶圆造成影响。维护人员需特别注意电镀模块内的晶圆状态,并尽可能快速地恢复调度程序。确认待维护模块内无晶圆滞留暂停调度程序并将相应模块设置为离线状态打开模块检修门并关闭安全盖板(槽位)

weixin_46735260的博客 1367

函数指针示例

【代码】函数指针示例。

qq_41937509的博客 937

DEXPI与Proteus XML:解锁过程工业P&ID数据互操作性的技术核心

本文深入探讨了DEXPI与Proteus XML在过程工业P&ID数据互操作性中的核心技术。通过解析DEXPI标准的开源特性和Proteus XML的架构设计,揭示了其在跨平台数据交换中的关键作用,并结合CADMATIC和西门子COMOS的实战案例,展示了如何实现高效的数据集成与转换。

weixin_29195615的博客 383

C语言 指针 案例详细解析

C语言 指针 案例详细解析

m0_56051805的博客 2757

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2496

虚拟机VirtualBox下载与安装、安装Ubuntu超详细图文步骤,对一些配置问题也有所写。

自己使用过两款虚拟机,相较于VMware虚拟机来说,virtuabox虚拟机所占内存更小,只有几十兆,且完全开源不收费,里面的功能与VMware基本差不多(在日常开发、学习使用完全够用)。最主要的是,在博主自己使用VMware时经常出错,而virtualbox就更稳定一些,所以这篇是针对virtualbox的安装与一些细节部分。

l1015649309的博客 4万+

函数指针(实例)

函数指针用法,实例如下: #include <stdio.h> #include <stdlib.h> #define FUNC_NUMBER 3 int SumTwoNumbers(int x, int y) // 函数1 { return (x + y); } int MultiTwoNumbers(int x, int y) // 函数2 { return (x * y); } int DiviTwoNumbers(int x, int y)

Chilling的博客 949

YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣本专栏已更新150多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行。2️⃣所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,紧跟学术热点,适应不同的任务场景。3️⃣团队内发表数篇SCI论文,熟悉完整的发表流程,订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容。4️⃣专栏内容会持续更新,最近更新时间:2024-12-24。项目介绍在大家购买专栏后,加入学

Limiiiing的博客 1万+

最易理解的C语言指针函数基础点以及经典例程

指针函数想必大家都知道指针函数、但是感觉在最基础的C代码程序开发中用到的却很少。花费了一段时间进行了一些总结。感兴趣的可以互相学习一下。共同进步!话不多说直接进入主题 。 概念及函数构成 指针函数是指一个函数的 返回值为地址量 的函数 指针函数定义的一般形式如下: <数据类型> * <函数名称>(<参数说明>) { 语句序列; } 例如指针函数的声明: int * func(int x,int y); 接下来分析一个题目,查找一下哪里存在问题

weixin_55420595的博客 931

[HQChart教程] 去掉“仅学习使用”文字提示的小技巧

最近用 HQChart 做图表时,发现左下角有“仅学习使用”的字样。这种水印虽然是默认的,但如果要展示给客户,可能会显得不够专业。还好,这个问题很好解决,只需要简单修改一下配置。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 598

泛微OA提交流程到下一个节点

泛微OA后端接口强制流程归档

CXYCMY的博客 2246

函数指针范例

函数指针范例 定义 函数指针是指向函数的指针变量。(Function pointer) 例子 下面给出一个应用函数指针的例子: 定义了一个函数指针数组及三个函数实现,将三个函数地址赋予函数指针数组,并通过函数指针数组调用三个函数。 #include<stdio.h> void *(*pf[3])(char *p); void *fun1(char *p) { printf("fun1:%s\n",p); return p; } void *fun2(char *p) {

m0_51653236的博客 363

AgentScope Java 2.0 项目实战:从零构建企业级自主Coding Agent

本文基于 AgentScope Java 框架,完整拆解两个生产级 AI Agent 项目的从零开发全过程。其一是企业级自主编码机器人(agentscope-codingagent),支持 Issue→PR 自动实现、PR Code Review、Docker 沙箱隔离执行与多通道接入;其二是个人 AI 助手管理平台(agentscope-paw),采用 Spring Boot + React 全栈架构,支持多 Agent、技能市场与多 IM 通道。

program哲学 837

C语言函数指针详解及典型应用例程

提供函数指针定义及常用使用方法,并列出多个例程进行详细说明,加深对函数指针的理解及应用。

weixin_42306872的博客 3257

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

详解C语言指针函数、函数指针、函数指针数组

在C语言中,指针是一个很重要但是又很容易弄错的概念,也可以说指针就是C语言的灵魂,所以说学好指针对于完全掌握C语言是一个必须的过程。而在指针中,指针函数、函数指针、指针函数数组、函数指针数组、指向函数指针数组的指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。 1. 指针函数 指针函数就是返回指针值的函数,本质是一个函数。所以指针函数等价于“返回值为指针的函数...

一只大笨猫的博客 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

函数指针和函数指针数组

函数指针:指向函数的指针。 函数指针数组:一个数组里面存的类型是函数指针。 一、函数指针的声明和调用 1.指针声明: 函数指针顾名思义就是一个指向函数的指针。 int Add(int x,int y) { return x+y; } char* Sub(char*) { } //声明函数指针并初始化 int (*Add)(int ,int ) ptr=&Add; char* (*Sub)(char*) prt_char=&Sub; 这里声明了两个函数指针.

weixin_45423515的博客 8820

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

掌握指针进阶:一篇带你玩转函数指针、函数指针数组及指向函数指针数组的指针!!

数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组//数组的每个元素是int*那要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义呢?答案是:parr1parr1先和[]结合,说明parr1是数组,数组的内容是什么呢?是int (*)()类型的函数指针。转移表总之,函数指针数组实际上是一个数组,其元素都是指向函数的指针。这使得我们可以将不同的函数存储在数组中,并通过索引来调用特定的函数。

深入解析C/C++编程技巧,带你探索高效开发之路 1408

C语言中指针函数和函数指针

函数指针数组的主要用途是存储并后续调用一组函数。实质是一个函数,只不过是返回值是指针的函数,也就是返回的是地址;:函数指针本质是一个指针,只不过该指针的地址指向的是一个函数;指针函数的*是属于数据类型;而函数指针的*修饰的是函数名;函数指针:例:int(*p)(int a,int b);指针函数:例:int *p(int a,int b);函数指针可以作为数组中的元素,也可作为结构体中的成员。指针函数本质是一个函数,其返回值为指针。函数指针本质是一个指针,其指向一个函数。区别:数组元素的参数形式须一致,

weixin_48479422的博客 1015

详解函数指针和类成员函数指针

作者:倾夜·陨灭星尘 一.什么是函数指针? 函数指针,顾名思义即指向函数的指针。 如果要问,为什么能用一个指针指向一个函数呢?我觉得要理解这个问题,以及要理解后面的函数指针和类成员函数指针,没有什么比从计算机原理的角度来理解更容易了。这里就简要回顾一下相关知识。 众所周知,计算机(图灵机)执行程序的基本流程就是:取指令->执行指令->取下一条指令->……。取指令的位置由一个寄存器PC决定。

yyx112358的博客 1万+

函数指针

函数指针定义方式 函数返回值类型 (* 指针变量名) (函数参数列表); 说明 “函数返回值类型”表示该指针变量可以指向具有什么返回值类型的函数; “函数参数列表”表示该指针变量可以指向具有什么参数列表的函数。 ...

linxi8693的博客 240

函数指针的使用,以及使用函数指针的好处

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。程序在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。很多c++泛型算法以及linux库函数经常见到函数指针的使用。。 函数指针的声明:bool (*pf)(int, int); //pf指向一个函数,该函数的参数是两个int,返回值是bool类型 函数指针的初始化例如有这样一个

Gouhailiang的博客 8028

函数指针、函数指针数组,函数指针数组的指针

数组指针 概念:数组指针是指针,只要是指针他就占4个字节; 例如: 整形指针:int *p;能够指向整形数据的指针    浮点型指针:float *p;能够指向浮点型的数据的指针 那么数组指针,同样的理解就是指向数组的指针。 Eg:  int (*p)[10] 解释:这里的p由于小括号的原因和*先结合,所以他就是指针,然后指向的是一个大小为10的整形数组,所以p首先是一个指针,然后指向

Gary的面包屑小道 1万+

typedef用法,函数指针

函数指针的声明 函数指针的声明 int (*a)(int,int)=NULL; typedef重定义 typedef int (*PF)(int,int);//函数指针别名 PF a=NULL; typedef int (*PFS[4])(int,int);//函数指针别名 PFS b={NULL};//定义了一个函数指针数组,4个长度 用函数指针作为函数的返回值 指针函数的定义 顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列); 其中,后缀运算符

qq_43446733的博客 4073

3、函数指针

此文编写参考狄泰软件学院唐佐林老师的视频课程,如有错误之处,欢迎指正。 1、函数指针的定义 函数也有其自己的类型,函数的类型由函数的返回值类型和函数的形参列表所构成,用函数类型定义的指针称为函数指针,函数指针用于指向某个函数,而函数名是执行函数体的入口地址。 2、定义一个函数指针的方法: (1)、直接用函数类型去定义函数指针(可先为函数类型重命名)如typedef type (pointer)(形参列表),则此时pointer就是一个函数类型,则可以用这个函数类型去定义一个函数指针了。如pointer* n

wuzhishiwo的博客 264
上一篇: 刚买新电脑,用虚拟机装的CentOS
下一篇: tftp服务器的安装(CentOS 6)
Leechard_C
博客等级 码龄12年 5粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值