typedef定义数组
typedef定义数组
问题来源
在学习高一凡数据结构与算法解析串这一章节时,遇到如下代码不明白其意义,经过查阅终于搞明白
typedef unsigned char SString[MAXLEN + 1];
使用typedef语句定义数组类型
一维数组类型的定义格式
格式:typedef<元素类型关键字><数组类型名>[常量表达式]
例如:
typedef int vector[10];
typedef char strings[80];
typedef short array[N];
第一条语句定义了一个元素类型为int,含有10个元素的数组类型vector,若不使用typedef保留字,则就变成了数组定义,它只定义了一个元素类型为int,含有10个元素的数组vector。这两种定义有着本质的区别,若定义的是数组vector,系统将为它分配有保存10个整数的存储单元,共40个字节的存储空间;若定义的是数组类型vector,系统只是把该类型的有关信息登记下来,待以后利用该类型定义对象时使用,具体地说,就是把vector的元素类型int,类型长度10,类型名vector等登记下来,待以后定义vector类型的对象时使用。
第二条语句定义了一个元素类型为插入,含有80个元素的数组类型strings,以后可以直接用strings类型定义数组对象,每个数组对象的元素为char型,数组长度(即元素个数)为80。
第三条语句定义了一个元素类型为short int的含有N个元素(N为已定义的符号常量)的数组类型array,以后利用它可以直接定义该类型的对象,它是一个含有N个短整型元素的数组。
利用上面的定义可以定义如下的几个对象:
vector v1,v2;
strings s1,s2;
array a;
typedef vector vectorSet[20];
vectorSet vs;
第一条语句定义了一个元素类型为vector,元素个数为20的数组类型vectorSet
第二条语句定义了数据类型为vectorSet的一个对象vs,该对象包含有20个类型为vector的元素,每个元素又包含有10个int类型的元素,所以整个数组共包含有20行10列共200个整数元素,等同于对vs的如下定义
int vs[20][10];
二维数组类型的定义格式
格式:typedef<元素类型关键字><数组类型名>[<常量表达式1>][<常量表达式2>]
例如:
typedef int matrix[5][5];
typedef char nameTable[10][NN];
typedef double DD[M+1][N+1];
第一条语句定义了含有5行5列共25个int型元素的数组类型matrix
第二条语句定义了10行NN列共10*NN个char类型元素的数组类型nameTable
第三条语句定义了含有M+1行N+1列共(M+1)*(N+1)个double类型元素的数组类型DD
利用上面三个二维数组类型可以直接定义出相应的二维数组。例如:
matrix mx;
nameTable nt;
DD dd;
对已有类型定义别名
利用typedef语句不仅能够定义数组类型,而且能够对已有类型定义出另一个类型名,以此作为原类型的一个别名。如下:
typedef int inData;
typedef char chData;
typedef char* chPointer;
第一条语句对int类型定义了一个别名inData
第二条语句对char类型定义了一个别名chData
第三条语句对char*类型定义了一个别名chPointer
通过上面的重命名,后面可以直接使用inData,chData和chPointer定义出相应的对象。例如:
inData x,y;
inData a[5] = {1,2,3,4,5};
chData b1,b2 = 'a';
chData c[10] = "char data";
chPointer p = NULL;
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/smilesundream/article/details/70161471
typedef定义数组的更多相关文章
- typedef定义数组类型
typedef语句定义数组类型 1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) typedef ...
- 使用typedef语句定义数组类型
使用typedef语句定义数组类型 1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) ty ...
- typedef 定义结构体数组或其他数组
typedef 定义结构体数组或其他数组 C\C++语言下 typedef其实是对一个变量类型的名字进行重新定义,例如下面中: typedef struct { int num[10]; char n ...
- C语言定义数组时使用枚举作为数组的下标 ——c99功能
部分参考了https://blog.csdn.net/wq3028/article/details/76204690 同时在电脑上进行验证 //温度,电磁阀传感器序号,方便数组定位 typedef e ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- C#中定义数组
C#定义数组 一.一维:int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二 ...
- loadrunner中定义数组
loadrunner 中数组的定义 loadrunner 中数组的定义: lr_save_string("www.google.com","website_1" ...
- typedef定义函数类型或函数指针
转载请标明出处: 最近在看redis的代码,发现了有关函数指针的部分,想把它记下来. 在redis中有类似下面的定义,利用typedef 定义了一个新的类型,这种类型是一个函数: typedef vo ...
- 动态定义数组 .xml
pre{ line-height:1; color:#3c3c3c; background-color:#d2c39b; font-size:16px;}.sysFunc{color:#627cf6; ...
随机推荐
- 双堆DEAP
记录一道遇到的考研真题 特性分析: DEAP为一颗完全二叉树,左子树小堆,右子树大堆,故左右子树分别可以用l[].r[]数组存储,用m和n分别表示当前两完全二叉树的结点,左右子树高度差为1,且左子树的 ...
- uni-app 安卓离线打包详细教程
借鉴 uni-app官方给出的文章http://ask.dcloud.net.cn/article/508(虽说是04年的) 预备环境 AndroidStudio开发环境,要求安装Android4.0 ...
- picGo+gitee搭建Obsidian图床,实现高效写作
1 picGo安装 [picgo下载链接](https://molunerfinn.com/PicGo/) 选择安装目录,可以选择安装在D:\Program Files 然后点击安装即可 2. git ...
- 源码解析-Abp vNext丨分布式事件总线DistributedEventBus
前言 上一节咱们讲了LocalEventBus,本节来讲本地事件总线(DistributedEventBus),采用的RabbitMQ进行实现. Volo.Abp.EventBus.RabbitMQ模 ...
- objcopy使用
objcopy - copy and translate object files:用于二进制文件的拷贝和翻译(转化) objcopy的man文件如下所示: objcopy [-F bfdname|- ...
- 服务集与AP的配合
一.实验目的 1)掌握添加无线网络配置 2)掌握配置信道和协议使用并配置在一个天线上同时运行两个服务集,即两个无线网络 二.实验仪器设备及软件 仪器设备:一台AC,两台AP,一台AR,一台LSW 软件 ...
- 测试平台系列(72) 了解ApScheduler基本用法
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们调研了一下市面上 ...
- KMP算法-字符匹配
字符匹配模式-KMP算法 j直接跳到了2的位置,因为在之前的都相同. 那么就需要求如果不等了之后,j需要回跳的位置next[j] 如果tk'与tj相等,则next [j+1]=k'+1 如果tk'与t ...
- Go语言核心36讲(Go语言实战与应用三)--学习笔记
25 | 更多的测试手法 在本篇文章,我会继续为你讲解更多更高级的测试方法.这会涉及testing包中更多的 API.go test命令支持的,更多标记更加复杂的测试结果,以及测试覆盖度分析等等. 前 ...
- dart系列之:dart语言中的异常
目录 简介 Exception和Error Throw和catch Finally 总结 简介 Exception是程序中的异常情况,在JAVA中exception有checked Exception ...