判断一个数组的长度用 Length 还是 SizeOf ?
如果是一维数组、且元素大小是一个字节, 这样用看不出错误, 譬如:
var
arr1: array[..] of Char;
arr2: array[..] of Byte;
begin
ShowMessageFmt('%d,%d,%d,%d',[Length(arr1), SizeOf(arr1),
Length(arr2), SizeOf(arr2)]);
{显示结果: 10,10,10,10}
end;
但如果数组元素多于一个字节、或是多维数组的情况下, 就不行了, 举例:
const
arr1: array[..] of Integer = (,,,,,,,,,);
arr2: array[.., ..] of Integer = ((,,,), (,,,));
var
arr3: array[Boolean] of Integer;
arr4: array[Byte] of Integer;
begin
ShowMessage(IntToStr(Length(arr1))); {10}
ShowMessage(IntToStr(SizeOf(arr1))); {40} ShowMessage(IntToStr(Length(arr2))); {2}
ShowMessage(IntToStr(Length(arr2[]))); {4}
ShowMessage(IntToStr(Length(arr2[]))); {4}
ShowMessage(IntToStr(SizeOf(arr2))); {32} ShowMessage(IntToStr(Length(arr3))); {2}
ShowMessage(IntToStr(SizeOf(arr3))); {8} ShowMessage(IntToStr(Length(arr4))); {256}
ShowMessage(IntToStr(SizeOf(arr4))); {1024}
end;
我们倒是可以利用这个原理, 迅速知道多维数组的元素总数:
const
arr: array[.., .., ..] of Integer =
(((,,,), (,,,), (,,,)), ((,,,), (,,,), (,,,)));
begin
ShowMessage(IntToStr(SizeOf(arr) div SizeOf(Integer))); {24}
end;
判断一个数组的长度用 Length 还是 SizeOf ?的更多相关文章
- delphi 判断一个数组的长度用 Length 还是 SizeOf ?
判断一个数组的长度用 Length 还是 SizeOf ?最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是 ...
- C#实现如何判断一个数组中是否有重复的元素
如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hashtable的Contains方法进行查找 /// ...
- C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强的数据库 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework
C#实现如何判断一个数组中是否有重复的元素 如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hasht ...
- div里面的元素垂直均匀分布 按钮引发地址栏出现问号 判断一个数组是否为空 div底部居中 路由传参接受参数
一个固定高度的div的子元素 在垂直 方向上平均分布 .important-dec{ height: 121px; flex-direction: column; display: flex; jus ...
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...
- js如何判断一个数组
typeof [] 为一个"object" 不能通过此方法判断一个数组 方法 1.instanceof方法,这个方法用的比较多. 2.这个是es5以后推荐的方法,Object.pr ...
- PHP如何判断一个数组是一维还是多维
什么叫多维数组呢?多维数组,本质上是以数组作为数组元素的数组. 二维数组又称为矩阵,一个数组的元素如果是一维数组,那么我们就称这个数组是二维数组. 怎么判断一个数组是否是一维数组呢?通过count() ...
- C#中怎么判断一个数组中是否存在某个数组值
(1) 第一种方法: ,,}; ); // 这里的1就是你要查找的值 ) // 不存在 else // 存在 (2) 第二种方法: string[] strArr = {"a",& ...
- c#:判断一个数组元素中否有重复元素
给定一个数组,判定该数组中是否有重复元素. 判定该数组中是否有重复元素总结出以下实现方案: using System; using System.Collections.Generic; using ...
随机推荐
- iPad所有平板型号屏幕尺寸
1.iPad所有平板型号屏幕尺寸 尺寸 iPad型号 物理点 像素点 倍数 7.9 iPad Mini 768x1024 768x1024 1 7.9 iPad Mini 2 iPad Mini 3 ...
- 内存域水印值:min_free_kbytes
1.内存域水印值:需要为关键性分配保留的内存空间的最小值:该值保存在全局变量min_free_kbytes中 2.内存域水印值的计算由函数init_per_zone_pages_min完成: /* * ...
- git小结-ms
目录 1.git是什么 2.git怎么工作的 3.git常用命令 4.git提效工具 5.git的技术用语 1.git是什么 git是开源的分布式的版本控制系统,可以有效.高速地处理的项目版本管理.g ...
- centos 7.6 修改vim配色方案
cd ~ vim .vimrc colorscheme desert
- docker镜像批量打包
docker镜像批量打包 批量打包镜像: # docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":&quo ...
- mysqldump 全备
[root@db01 b]#mysqldump -uroot -poldboy123 -A -R --triggers --master-data=2 --single-transaction | g ...
- centos7安装nginx 并启动
原文连接 https://www.cnblogs.com/jerrypro/p/7062101.html 一.安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先 ...
- 《CoderXiaoban》第八次团队作业:Alpha冲刺 2
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 Coderxiaoban团队 作业学习目标 (1)掌握软件测试基 ...
- java相关资料连接
1.tomcat原理https://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/index.html ....
- C#调用一下CMD
C#程序调用CMD执行命令 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统.输入 ...