C语言(typedef,函数和指针)

news2024/9/23 19:17:58

 

目录

一.typedef

二.函数和指针

一.typedef

typedef是一种高级数据特性,利用typedef可以为某一类型自定义名称。typedef创建的符号名只受限于类型

typedef unsigned char BYTE;

BYTE x 这里的BYTE就相当于unsigned char x

typedef unsigned char  *BYTE;

BYTE x,y 相当于unsigned char * x,*y;

typedef在日常的应用中非常多,它对于简化程序有很大的帮助,我们会在后面举例到

二.函数和指针

通常,函数指针常用作另一个函数的参数,告诉该函数要使用哪一个函数。

声明一个函数指针时,必须声明指针指向的函数类型

void(*pf)(char *)

pf是一个指向函数的指针。因此,(*pf)是一个参数列表为(char *),返回类型为void的函数。

Void ToUpper(char *);

Int round(double);

Void (*pf)(char *);

pf = ToUpper;  //有效,ToUpper是该类型函数的地址 Pf = ToUpper();是错误的,因为ToUpper()的返回值是void

pf =round;  //无效,round与指针类型不匹配

既可以用数据指针访问数据,也可以用函数指针访问函数

void ToUpper(char *);

void (*pf)(char *);

char mis[] = "Nina Metier";

pf = ToUpper;

(*pf)(mis);  //也可以pf(mis);

第一种方式:(*pf)(mis);

由于pf指向ToUpper函数,那么*pf就相当于ToUpper函数,那么表达式(*pf)(mis)和ToUpper(mis)相同

第二种方式:pf(mis);

由于函数名是指针,那么指针和函数名可以互换使用,所以pf(mis)和ToUpper(mis)相同

作为函数的参数是数据指针是最常见的用法之一

Void show(void (*pf)(char *),char * str);

fp是函数指针,str是一个数据指针。

下面我们来讲解一个例子。

这个例子中,我们使函数指针pf指向将字符转换为大写字符的函数TOUPPER进行使用。


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/342675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[oeasy]python0082_VT100_演化_颜色设置_VT选项_基础色_高亮色_索引色_RGB总结

更多颜色 回忆上次内容 上次 了解了控制序列 背后的故事 一切标准 都是 从无到有 的就连 负责标准的组织 也是 从无到有 的 VT-05 奠定了 基础颜色 黑底 绿字隔行 扫描 但 多颜色设置 是如何出现 的呢??🤔 控制字符 1974年 产品 从VT05…

语音识别系列之脉冲神经网络特征工程

人工神经网络(Artificial Neural Network, ANN)中的单个人工神经元是对生物神经元的高度抽象、提炼和简化,模拟了后者的若干基本性质。得益于误差反向传播算法,网络权重可根据设定的目标函数得到有效地调整,ANN在视觉、…

LeetCode初级算法题(Java):反转链表+统计N以内的素数+删除排序数组中的重复项

文章目录1 反转链表1.1 题目1.2 解题思路解法1:迭代解法2:递归1.3 题解代码2 统计N以内的素数2.1 题目2.2 解题思路与题解代码解法1:暴力算法代码展示解法1:埃氏筛代码展示3 删除排序数组中的重复项3.1 题目3.2 解题思路3.3 题解代…

近红外染料标记小分子1628790-37-3,Cyanine5.5 alkyne,花青素CY5.5炔基

试剂基团反应特点:Cyanine5.5 alkyne用于点击化学标记的远红外/近红外染料炔烃。氰基5.5是Cy5.5的类似物,一种流行的荧光团,已广泛用于各种应用,包括完整生物体成像。在温和的铜催化化学条件下,该试剂可与叠氮基共轭&a…

构建RFID系统的重要组成部分

RFID读写设备,通常被用来扫描读取安装了RFID电子标签的目标物品,能实现快速批量无接触读写,是构建RFID系统的重要组成部分。RFID读写设备,通常有固定式读写设备和可移动读写设备两种。下面来了解一下RFID的特点,RFID系…

EZ-Cube简易款下载器烧写使用方法

一、硬件连接 跟目标芯片接4根线 VCC、GND、TOOL、REST 四根线,如果板子芯片自己外接电源的,VCC 线可以不接。 二、 安装烧写软件和驱动 烧写软件:https://download.csdn.net/download/Stark_/87444744?spm1001.2014.3001.5503 驱动程序&a…

java微信小程序的在线学习平台

本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对在线学习平台进行需求分析,得出在线学习平台主要功能。接着对在线学习平台进行总体设计和详细设计。总体设计主要包括小程序功能设计、小程…

Apache JMeter 5.5 下载安装以及设置中文教程

Apache JMeter 5.5 下载安装以及设置中文教程JMeter下载Apache JMeter 5.5配置环境变量查看配置JDK配置JMeter环境变量运行JMeter配置中文版一次性永久设置正文JMeter 下载Apache JMeter 5.5 官方网站:Apache JMeter 官网 版本介绍: 版本中一个是Bina…

TCP协议 ---可靠传输的各种机制

目录 一、可靠 确认应答机制:保证数据可靠、有序的到达对端 超时重传机制 二、效率 2.1 提高自身发送数据量 滑动窗口机制: 滑动窗口的发送缓冲区是环形队列 滑动窗口的大小会变化吗? 滑动窗口的nb之处 滑动窗口丢包问题 2.2 对方…

锻炼管理器wger的安装

本文是 2021 年 2 月完成的,最近因为工作比较忙,就把这些老文章翻出来,但为了发表,老苏差不多又重写了一遍。 因为当时跑的是 wger/apache ,现在新的 wger/apache 版本在老苏的机器上,会遇到 AH00141: Coul…

Windows Git Bash 配置

Windows Git Bash 配置 本文参考的文章: 在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)Git bash 安装 pacman & Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com) 一、Git的安装 Git 的安装应该是都会的,但还是应该说以下&#…

前端常见基础面试题css篇

目录 1.css3有哪些新特性? 2.CSS有哪些基本选择器?它们的权重是如何表示的? 3.css 选择器的类型优先级排序 4.写出几种CSS实现元素两个盒子垂直水平居中的代码 5.CSS 常见的伪类和伪元素有哪些? 6.CSS的引入方式有哪些?ink…

CMMI-外包与采购管理

外包与采购管理(Outsourcing and Procurement Management, OPM)是指外包管理和采购管理,目的是选择合适的承包商和供应商,并依据合同进行有效的管理。外包与采购管理过程域是SPP模型的重要组成部分。本规范阐述了外包与采购管理过…

自定义认证器

自定义认证器工作流程 1、设备向AWS IoT发送http请求,包含token和token签名 2、IoT判断这是一个自定义认证请求,然后确认token和token签名是否匹配 3、Lambda函数验证token之后,将输出5项数据, isAuthenticated:求是…

Zookeeper入门与应用

Zookeeper入门与应用1.简介1.1.应用场景1.2.Zookeeper的设计目标1.3数据模型2. 单机安装3.常用shell命令3.1.查询3.2.创建3.3.更新3.4.删除4.zookeeper的Acl权限控制案例/远程登录acl 超级管理员5.zookeeper的 JavaAPI连接到Zookeeper5.1.新增节点5.2.修改节点5.3.删除节点5.4.…

4、数组、切片、map、channel

目录一、数组二、切片三、map四、channel五、引用类型一、数组 数组: 数组是块连续的内存空间,在声明的时候必须指定长度,且长度不能改变所以数组在声明的时候就可以把内存空间分配好,并赋上默认值,即完成了初始化数组…

Spring反射内置工具类ReflectionUtils

Spring反射内置工具类ReflectionUtils前言反射1,什么是反射2,反射的实现2.1获取class对象的三种实现2.1.1Object ——> getClass();2.1.2 任何数据对象(包括数据基本类型)都有一个静态的class属性通过Class类的静态方法&#x…

TX Text Control .NET 31.0 SP1 for WPF 企业版Crack

将文档编辑、创建和 PDF 生成添加到 WPF 应用程序。 TX Text Control for WPF Enterprise 是一个免版税、完全可编程的丰富编辑控件,它在专为 Visual Studio 设计的可重用组件中为开发人员提供了广泛的文字处理功能。它提供全面的文本格式,强大的邮件合并…

golang fmt.Sprintf(“%.2f“) 的舍入问题

首先,fmt.Sprintf("%.2f")使用的是banker rounding 而不是四舍五入,banker rounding 的定义如下(来自百度百科):1.要求保留位数的后一位如果是4,则舍去。例如5.214保留两位小数为5.21。2.如果保留…

第四代英特尔至强重磅发布,芯片进入下半场:软硬加速、绿色可持续

编辑 | 宋慧 出品 | CSDN 云计算 2023 年的第二周,英特尔重磅发布其企业级芯片领域重要的产品——第四代英特尔 至强 可扩展处理器。作为数据中心处理器当之无愧的王牌产品,迄今为止,英特尔已经向全球客户交付了超8500万颗​至强可扩展处理器…