Basic Pascal Tutorial/Chapter 5/1-dimensional arrays/zh CN
English · Français · Български · 中文(中国) · 日本語
5C - 一维数组 (原作者: Tao Yue, 状态: 未更改)
假设你需要使用5000个整数,你会如何存储?你可以定义5000个变量:
aa, ab, ac, ad, ... aaa, aab, ... aba, ...
但这很繁琐(声明这些变量后,你需要读取每个变量)。
一个数组包含多个存储空间,类型相同。你只需要指定数组名和下标就可以使用了:
type
typename = array [????????????] of ????????????;数据类型任意,甚至是一个数组。方括号中的“下标类型”可以是任何的顺序类型,即可以是整型,布尔型,字符类型,枚举类型,子界类型。
type
enum_type = 1..50;
arraytype = array [enum_type] of integer;is equivalent to
type
arraytype = array [1..50] of integer;注:在此之前,程序员需要自己处理字符串存储问题。通过声明:
type
String = packed array [0..255] of char;使用某种特殊字符来表示字符串结束,大多使用空字符(0或ord(0)),packed指定了占用空间。
在C或C++编程语言中,把200个字符存入长度为150的数组,会造成缓冲区溢出。如果缓冲区被覆盖并包含可执行代码,那么,攻击者将会设法进入你的系统。这就是Slammer蠕虫病毒猖獗的原因。试试在Pascal中会发什么。
如果你需要在程序中存储大量数据,数据的下标可以循环读取出来,例如:
type
arraytype = array[1..50] of integer;
var
myarray : arraytype;使用:
for count := 1 to 50 do
read (myarray[count]);使用数组时,使用方括号[ ]括起下标。
myarray[5] := 6;| 上一页 | 目录 | 下一页 |
From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 5/1-dimensional arrays/zh CN", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
