国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
FreeBASIC學習筆記-數(shù)據(jù)類型
2.3.1 整數(shù)型
整數(shù)型數(shù)據(jù)顧名思義就是不帶小數(shù)的數(shù)據(jù),我們通常用十進制數(shù)表示這些數(shù)據(jù),但FreeBASIC也允許二進制、八進制和十六進制的數(shù)據(jù)表示方式。
1、不同進制的表示方式
二進制:
二進制只有0和1,在FreeBASIC中,二進制數(shù)據(jù)以“&B”開頭,后跟二進制數(shù)字(0或1)
例如:
八進制:
在FreeBASIC中,八進制數(shù)據(jù)以“&O”開頭(注意是字母O而不是數(shù)字0),后跟八進制數(shù)字(0 1 2 3 4 5 6 7)
例如:
十進制:
十進制數(shù)沒有什么前綴符號,用數(shù)字(0 1 2 3 4 5 6 7 8 9)表示,也可以在數(shù)字前加“-”表示負數(shù)。
例如:
十六進制:
在FreeBASIC中,十六進制數(shù)以“&H”開頭,后跟十六進制數(shù)字(0 1 2 3 4 5 6 7 8 9 AB C D E F)。
例如:
2、類型名稱和范圍
整數(shù)類型數(shù)據(jù)根據(jù)實際存儲大小分成不同類型,有符號數(shù)據(jù)類型可以表示負數(shù),無符號數(shù)據(jù)類型則只表示0以上的數(shù)據(jù),無符號類型是在有符號類型前加字母U(即Unsigned)。
由于數(shù)值是以補碼表示的,正數(shù)的補碼和源碼相同;負數(shù)的補碼是將該數(shù)的絕對值的二進制形式按位取反再加1,所以負數(shù)左邊的第一位是表示符號的,其數(shù)值范圍因為有了符號位即可以表示負數(shù)和正數(shù)了。各種無符號類型量所占的內存空間字節(jié)數(shù)與相應的有符號類型量相同。但由于省去了符號位,故不能表示負數(shù)。
其中Integer和UInteger類型取決于系統(tǒng)的大小,在32位系統(tǒng)中則其位數(shù)為32位,在64位系統(tǒng)中則其位數(shù)為64位。整數(shù)類型的具體名稱和范圍如表2-1所示。
表2-1  整數(shù)類型名稱和范圍
類型名稱位數(shù)最小值最大值說明
Byte8 -128127有符號整數(shù),1字節(jié)
UByte80255無符號整數(shù),1字節(jié)
Short16-32768+32767有符號整數(shù),2字節(jié)
UShort16065535無符號整數(shù),2字節(jié)
Long32-2147483648+2147483647有符號整數(shù),4字節(jié)
Ulong3204294967295無符號整數(shù),4字節(jié)
Integer32/64取決于系統(tǒng)取決于系統(tǒng)有符號整數(shù),取決于系統(tǒng)
UInteger 32/64取決于系統(tǒng)取決于系統(tǒng)無符號整數(shù),取決于系統(tǒng)
LongInt64-9223372036854775808+9223372036854775807有符號整數(shù),8字節(jié)
ULongInt640+18446744073709551615無符號整數(shù),8字節(jié)
2.3.2 浮點數(shù)型
浮點類型Single和Double的最小值為最接近零的值,最大值為最接近正負無窮大的值。浮點類型具體名稱和范圍如表2-2所示。
表2-2 浮點類型名稱和范圍類型名稱位數(shù)最小值最大值說明
Single32+/-1.401298E-45+/-3.402823E+38浮點數(shù),4字節(jié)
Double64+/-4.940656458412465E-324+/-1.797693134862316E+308浮點數(shù),8字節(jié)
2.3.3 字符型
在FreeBASIC中默認有三種類型的字符串,String、ZString和WString,具體名稱和大小如表2-3所示。
String是一個字符數(shù)組,允許指定字符串的大小,字符串大小以字節(jié)計算(一個漢字算2字節(jié))。如果不指定大小則根據(jù)字符串的長度動態(tài)調整大小,長度可以從0字節(jié)到2千兆字節(jié)。初始化時如果不指定字符串,根據(jù)需要可以使用Space或者String函數(shù)給字符串賦值一定空間。在-lang fb語言規(guī)則里不允許使用變量后綴,包括美元符號“$”。
語法:
例如:
ZString是一個C風格的固定大小的字符數(shù)組。也就是在定義字符變量時必須聲明字符串的長度,或者聲明字符串指針(關于指針內容在指針章節(jié)說明)。字符串的末尾用空字符(ASCII值0)標記。這是由FreeBASIC字符串處理函數(shù)自動添加的。當字符串創(chuàng)建時,將附加一個空字符,并且將通過掃描第一個空字符的字符串來計算長度。空字符永遠不會包含在ZString的文本中,否則字符串的其余部分將被截斷。在ZString中,Len返回包含字符串的大小,SizeOf返回賦值給ZString的空間。ZString的初始符號是用“=>”表示的,這個區(qū)別于String類型。
語法:
例如:
WString是固定大小的寬字符數(shù)組(Unicode或者Wide類型字符),如果在編譯時已知大小,則該字符串將永遠不會溢出。定義字符變量時必須聲明字符串的長度,或者聲明字符串指針(關于指針內容在指針章節(jié)說明)。WString與ZString類似的在字符串的末尾用空字符(ASCII值0)標記。在WString文本中不能有空字符,否則字符串的其余部分將被截斷。在WString中,Len返回包含字符串的大小,SizeOf返回賦值給WString的空間。由于WString是寬字符的,所以Len返回的是字符串個數(shù)(漢字被算做一個字符,而不是ZString或String中的2個字節(jié))。WString的初始符號也是用“=>”表示的。
語法:
例如:
表2-3 字符類型名稱和范圍
類型名稱字符大小最小尺寸(字符數(shù))最大尺寸(字符數(shù))說明
String1字節(jié)0+2147483647
ZString 1字節(jié)0+2147483647
WString系統(tǒng)決定0+2147483647
2.3.4 其他類型及類型修飾符
1、Const
Const除了可以定義常量外,還可以作為變量的修飾符,指定數(shù)據(jù)類型或指針數(shù)據(jù)類型是只讀的。語法如下:
指定Const限定符的datatype或Ptr將被視為只讀。只讀(Const)聲明是可以被視為“不改變”的類型。編譯器使用Const聲明來檢查對變量和參數(shù)的操作,并且如果數(shù)據(jù)可能會發(fā)生變化,則在編譯時生成錯誤。由于所有的檢查都是在編譯時進行的,所以使用Const限定符沒有運行時的開銷。
Const可以在數(shù)據(jù)類型聲明的任何地方使用。這包括變量,參數(shù),函數(shù)返回結果,用戶定義的類型字段,類型別名和轉換。datatype 可以是任何內置的標準數(shù)據(jù)類型或用戶自定義的類型。
非Const和Const變量都可以傳遞給一個期望一個Const參數(shù)的過程。但是,一個Const變量不能被傳遞給一個采用非Const參數(shù)的過程,并且會產生一個編譯錯誤。程序可以根據(jù)參數(shù)的常量重載。使用指針聲明,Const可用于指示指針聲明的哪一部分是只讀的(所有其他部分都是默認讀寫)。指針數(shù)據(jù)類型的只讀部分可以是指針本身(地址),指針指向什么(數(shù)據(jù))或兩者都是。在具有多個級別Ptr間接的聲明中,最右邊的Ptr表示間接的最高級別,因此首先被取消引用。
編譯器具有相對于Const限定符的八個指針間接級別的內部硬限制,并且使用Ptr具有大于八個間接級別的數(shù)據(jù)類型的Const的行為是未定義的。
例如:
2、Unsigned
在定義有符號的整型數(shù)據(jù)時可以用Unsigned修飾符將數(shù)據(jù)強制聲明為無符號類型,由于FreeBASIC已經有無符號的數(shù)據(jù)類型,所以很少使用該修飾符。DataType必須是有符號的整數(shù)類型。
語法:
例如:
3、Any
Any在FreeBASIC中經常見到,但其本身并不是變量的有效數(shù)據(jù)類型,Any是以各種方式用作于類型或值的占位符,Any可以用于指針、ByRef參數(shù)以及動態(tài)數(shù)組的聲明和數(shù)據(jù)的初始化中。
在指針中Any Ptr(或“Any Pointer”)作為特殊指針類型允許指向任何變量類型。如果您將其轉換為DataTypePtr,則可以索引或取消引用以訪問內存,作為DataType 的實例。指針算術允許在Any Ptr上,并像Byte Ptr一樣對待:指針以1的增量更改。
純粹的Any Ptr沒有編譯器的類型檢查。它可以通過賦值或參數(shù)傳遞隱式轉換為其他指針類型。這里不要與可以包含任何類型的變量的Visual Basic數(shù)據(jù)類型Variant相混淆。FreeBASIC不提供Variant類型的本地支持。
Any可以在具有ByRef參數(shù)的過程原型(Declare語句中)中使用,以禁用編譯器檢查傳遞的變量的正確類型。在FreeBASIC中函數(shù)和過程中,Any的使用已被棄用,僅與QB兼容。
在數(shù)組聲明中,可以指定Any代替數(shù)組邊界,以創(chuàng)建一個基于指定的Any數(shù)量確定的一定維度的動態(tài)數(shù)組,在Type內聲明一個動態(tài)數(shù)組成員時必須使用Any參數(shù)。
Any可以用作偽初始化值,以將變量的默認初始化禁用為0,使變量未初始化。這可以節(jié)省程序的部分的時間。程序必須在讀取變量之前填寫有意義的數(shù)據(jù)。與C/C++的比較:這與C/C++中沒有初始化值的變量聲明的行為相匹配。
Any也可以與New或Placement New運算符一起使用,以便將新創(chuàng)建的對象未初始化(僅允許使用不具有構造函數(shù)的數(shù)據(jù)類型)。同時FreeBASIC的內部函數(shù)Instr和InstrRev的參數(shù)也使用Any類型。使用類型如下:
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C++ Primer第二章習題
讀書日志:代碼大全之第十一章
Windows API數(shù)據(jù)類型的命名規(guī)律 與常用的Windows 數(shù)據(jù)類型
VC常用數(shù)據(jù)類型使用轉換詳解
csdn(18條消息) 2021版C++教程,C++進階教程(最全C++教程)
C語言const:禁止修改變量的值
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服