1.常量的定義通過關鍵字 const 來聲明,比如
const
pi=3.14
number=10000
book='delphi'
2.變數的定義需要注意兩點。(a)1.變數名要符合object pascal語言關於標識符的規則。(b)必須明確指定變數的類型,可以是預定義的標準類型,也可以是前面自己聲明過的自定義類型。
3.absolute子句,用於指定變數的值在內存中存儲的絕對位置,如下聲明一byte型數據CrtMode:Var CrtMode:Byte Absolute $0040:$0049;($是16進制號)
windows不允許應用程式訪問程序外的內存區域。直接寫入內存地址會導致一個GPF錯誤。應該如下:
var str:string;
strlen:byte absolute str;
4.全局變數分為兩類,一種是整個程序都能訪問的公共變數,必須是在單元的interface部份。另一類只限於某個但願訪問的公共變數,必須在implementation部份聲明。可以對全局變數賦初值,如果沒有,初值就是0。比如 var x:integer=1。局部變數只限於聲明在所在的塊內,不能在聲明時賦初值。在明確的給它們賦值前,他們的值是不確定的。
5.基本的字元類型有 ansichar 占8位,根據ansi字符表排列;widechar占16位,根據unicode碼表排列。在delphi中通用的字符類型是char。對於任何在ansichar或widechar範圍內的整數值,可以用預定義的函數chr返回對應的字符值,用函數ord返回一個字符的序號,用sizeof函數可以取得字節數。
6.枚舉類型是用一組數量有限的標識符來表示一組連續的整數常數。比如:
type dayofweek=(sun,mon,tue,wed,thu,fri,sat);
var mydays:dayofweek;
object pascal規定,第一個標識符的值是0,第二個是1。也可以把聲明類型和聲明變數合起來,如下:
var mydays:(sun,mon,tue,wed,thu,fri,sat);
不能用某個枚舉元素參加運算,只能以它賦值。用函數pred來返回指定元素的前一個元素,用函數succ來返回指定元素的後一個元素。
7.子界類型的特點在於子界類型是有序範圍內的值,主要用於限制一個變數的取值範圍。比如:
type letters='A'…'Z';
month=1…12;
子界類型的上界和下界可以是表達式。
8.字符串分為短字符串和長字符串。短字符串指長度不超過255的字符串。當編譯狀態為【$H-】時,就是短字符串。如下聲明:
var mystring1:string【100】;
每個字符是可以用索引來訪問的。但索引0處存放的是字符串的實際長度,真正的字符從1開始。可以用函數low和high返回最大序號和最小序號。
長字符串的長度幾乎無限制,理論可達2gb。聲明長字符串需要將編譯開關改為【$H+】。和短字符串不同的是,長字符串沒有索引0,只能通過函數length來取得實際的長度。長字符串最後一個字符后自動加一個null字符表示結束。爲了方便轉成指針。
9.一維數組的定義如下:
type myarray=array【1…100】 of real;
多維數組的定義如下:
type myarray=array【1…100,1…200】 of real;或者 type myarray=array【1…100】 of array【1…200】 of real;
零基準數組是下標從0開始的,主要用於存儲null字符結束的字符串。
開放式數組是指數組作為形參傳遞給過程或函數,其長度不確定。
動態數組如下定義:
類型名: array of 數據類型。但在程序中使用它之前,需要setlength(數組名,數組元素個數)