資源描述:
《pascal編程語言中的變量和常量》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。
1、變量Pascal變量在使用前必須聲明,聲明變量時必須指定一種數(shù)據(jù)類型。下面是變量聲明的例子:varValue:Integer;IsCorrect:Boolean;A,B:Char;關鍵字var可以在許多地方使用,例如放在函數(shù)或過程的開始部分,用來聲明函數(shù)或過程的局部變量;也可以放在單元中,用于聲明全程變量。var關鍵字之后是一組變量名列表,每個變量名后跟一個冒號和數(shù)據(jù)類型名,一行中可以聲明多個變量,如上例中最后一句。一旦變量的類型被指定,你只能對變量執(zhí)行該變量類型支持的操作。例如,在判斷操作中用布爾值,在數(shù)字表達式中用整型值,你不能將布爾值和整型值混用
2、(在C語言中可以這樣)。使用簡單的賦值語句,可寫出下面的代碼:Value:=10;IsCorrect:=True;但下面的語句是不正確的,因為兩個變量數(shù)據(jù)類型不同:Value:=IsCorrect;//error在Delphi中編譯這句代碼,會出現(xiàn)錯誤信息:Incompatibletypes:'Integer'and'Boolean'.(類型不兼容:‘整型’和‘布爾型’)。象這樣的錯誤通常是編程錯誤,因為把一個True或False的值賦給一個整型變量沒有什么意義。你不該責怪Delphi提示這樣的錯誤信息,代碼中有不對的地方Delphi當然要提出警告。把
3、變量的值從一種類型轉(zhuǎn)換到另一種類型往往不難做到,有些情況下類型轉(zhuǎn)換會自動實現(xiàn),不過一般情況下需要調(diào)用特殊的系統(tǒng)函數(shù),通過改變數(shù)據(jù)內(nèi)部表示來實現(xiàn)類型轉(zhuǎn)換。在Delphi中,當你聲明全程變量時,你可以賦給它一個初值。例如,你可以這樣寫:varValue:Integer=10;Correct:Boolean=True;這種初始化方法只能用于全程變量,不能用于過程或方法的變量。常量對于在程序運行期間保持不變的值,Pascal允許通過常量來聲明。聲明常量不必特定數(shù)據(jù)類型,但需要賦一個初值。編譯器會根據(jù)所賦初值自動選用合適的數(shù)據(jù)類型。例如:constThousan
4、d=1000;Pi=3.14;AuthorName='MarcoCantù';Delphi根據(jù)常量的值來決定它的數(shù)據(jù)類型。上例中的Thousand變量,Delphi會選用SmallInt數(shù)據(jù)類型(短整型--能容納Thousand變量的最小整數(shù)類型)。如果你想告訴Delphi采用特定的類型,你可在聲明中加入類型名,方法如下:constThousand:Integer=1000;對于聲名的常量,編譯器有兩種編譯選擇:第一種為常量分配內(nèi)存,并把常量的值放入內(nèi)存;第二種在常量每次使用時復制常量值。第二種方法比較適合簡單常量。注意:16位的Delphi允許你在程
5、序運行期間改變已定義的常量值,就象一個變量一樣。32位的Delphi為了向后兼容仍容許這種操作,只要你附加$J編譯指令,或選擇工程選項對話框中Compiler(編譯器)頁的Assignabletypedconstants復選框就行。盡管如此,這里我還是要強烈建議萬不得以不要使用上述操作,因為把新值賦給常量將使編譯器不能對常量進行優(yōu)化,與其如此不如直接聲明一個變量。資源串常量當定義字符串常量時,你可這樣寫:constAuthorName='MarcoCantù';從Delphi3開始,你可以用另一種方式寫:resourcestringAuthorName
6、='MarcoCantù';上面兩個語句都定義了一個常量,也就是定義了一個在程序運行期間保持不變的值,但兩者的實現(xiàn)過程卻不同,用resourcestring指令定義的字符串變量將被保存到程序資源的字符串表中。從例子ResStr你可了解資源串的實際作用,例子中設置了一個按鈕,相應代碼如下:resourcestringAuthorName='MarcoCantù';BookName='EssentialPascal';procedureTForm1.Button1Click(Sender:TObject);beginShowMessage(BookName
7、+#13+AuthorName);end;以上代碼中的兩個字符串將分兩行輸出顯示,因為字符串被分行符#13隔開。有趣的是,當你用資源編輯器打開執(zhí)行文件時,你會在程序資源中看到你所定義的字符串。這意味著字符串并沒有進入編譯代碼,而是保存在執(zhí)行文件(EXE文件)的一個單獨區(qū)域。注意:簡而言之,采用資源的好處一方面可讓Windows來完成有效的內(nèi)存處理,另一方面不用更改源代碼就可實現(xiàn)程序的本地化(把字符串翻譯成不同的語言)。數(shù)據(jù)類型Pascal中有多種預定義的數(shù)據(jù)類型,它們可分為三大類:有序數(shù)據(jù)類型,實數(shù)類型和字符串類型。下面我們先討論有序類型和實數(shù)類型,字
8、符串類型放在以后討論。同時這一節(jié)還將介紹幾種Delphi庫中定義的類型(不是編譯器預定義的類型