回覆列表
  • 1 # 快樂與我同行9

    各種型別的資料都有其範圍:型別說明符數的範圍分配位元組數

    ·資料型別

    ·儲存型別

    ·作用域

    在本講中,我們只介紹資料型別說明。其它說明在以後陸續介紹。所謂資料型別是按被說明量的性質,表示形式,佔據儲存空間的多少,構造特點來劃分的。在C語言中,資料型別可分為:基本資料型別,構造資料型別,指標型別,空型別四大類。

    1.基本資料型別

    基本資料型別最主要的特點是,其值不可以再分解為其它型別。也就是說,基本資料型別是自我說明的。

    2.構造資料型別構造資料型別

    是根據已定義的一個或多個數據型別用構造的方法來定義的。也就是說,一個構造型別的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本資料型別或又是一個構造型別。在C語言中,構造型別有以下幾種:

    ·陣列型別

    整型量

    整型量包括整型常量、整型變數。整型常量就是整常數。在C語言中,使用的整常數有八進位制、十六進位制和十進位制三種。

    整型常量

    1.八進位制整常數八進位制整常數必須以0開頭,即以0作為八進位制數的字首。數碼取值為0~7。八進位制數通常是無符號數。

    以下各數是合法的八進位制數:

    015(十進位制為13)0101(十進位制為65)0177777(十進位制為65535)

    以下各數不是合法的八進位制數:

    256(無字首0)03A2(包含了非八進位制數碼)-0127(出現了負號)

    2.十六進位制整常數

    十六進位制整常數的字首為0X或0x。其數碼取值為0~9,A~F或a~f。

    以下各數是合法的十六進位制整常數:

    0X2A(十進位制為42)0XA0(十進位制為160)0XFFFF(十進位制為65535)

    以下各數不是合法的十六進位制整常數:

    5A(無字首0X)0X3H(含有非十六進位制數碼)

    3.十進位制整常數

    十進位制整常數沒有字首。其數碼為0~9。

    以下各數是合法的十進位制整常數:

    237-568655351627

    以下各數不是合法的十進位制整常數:

    023(不能有前導0)23D(含有非十進位制數碼)

    ·結構型別

    ·聯合型別

    3.指標型別

    指標是一種特殊的,同時又是具有重要作用的資料型別。其值用來表示某個量在記憶體儲器中的地址。雖然指標變數的取值類似於整型量,但這是兩個型別完全不同的量,因此不能混為一談。4.空型別在呼叫函式值時,通常應向呼叫者返回一個函式值。這個返回的函式值是具有一定的資料型別的,應在函式定義及函式說明中給以說明,例如在例題中給出的max函式定義中,函式頭為:intmax(inta,intb);其中“int”型別說明符即表示該函式的返回值為整型量。又如在例題中,使用了庫函式sin,由於系統規定其函式返回值為雙精度浮點型,因此在賦值語句s=sin(x);中,s也必須是雙精度浮點型,以便與sin函式的返回值一致。所以在說明部分,把s說明為雙精度浮點型。但是,也有一類函式,呼叫後並不需要向呼叫者返回函式值,這種函式可以定義為“空型別”。其型別說明符為void。在本講中,我們先介紹基本資料型別中的整型、浮點型和字元型。其餘型別在以後各講中陸續介紹。

    對於基本資料型別量,按其取值是否可改變又分為常量和變數兩種。在程式執行過程中,其值不發生改變的量稱為常量,取值可變的量稱為變數。它們可與資料型別結合起來分類。例如,可分為整型常量、整型變數、浮點常量、浮點變數、字元常量、字元變數、列舉常量、列舉變數。在程式中,常量是可以不經說明而直接引用的,而變數則必須先說明後使用。

    在程式中是根據字首來區分各種進位制數的。因此在書寫常數時不要把字首弄錯造成結果不正確。4.整型常數的字尾在16位字長的機器上,基本整型的長度也為16位,因此表示的數的範圍也是有限定的。十進位制無符號整常數的範圍為0~65535,有符號數為-32768~+32767。八進位制無符號數的表示範圍為0~0177777。十六進位制無符號數的表示範圍為0X0~0XFFFF或0x0~0xFFFF。如果使用的數超過了上述範圍,就必須用長整型數來表示。長整型數是用字尾“L”或“l”來表示的。例如:

    十進位制長整常數158L(十進位制為158)358000L(十進位制為-358000)

    八進位制長整常數012L(十進位制為10)077L(十進位制為63)0200000L(十進位制為65536)

    十六進位制長整常數0X15L(十進位制為21)0XA5L(十進位制為165)0X10000L(十進位制為65536)

    長整數158L和基本整常數158在數值上並無區別。但對158L,因為是長整型量,C編譯系統將為它分配4個位元組儲存空間。而對158,因為是基本整型,只分配2個位元組的儲存空間。因此在運算和輸出格式上要予以注意,避免出錯。無符號數也可用字尾表示,整型常數的無符號數的字尾為“U”或“u”。例如:358u,0x38Au,235Lu均為無符號數。字首,字尾可同時使用以表示各種型別的數。如0XA5Lu表示十六進位制無符號長整數A5,其十進位制為165。

    整型變數

    整型變數可分為以下幾類:

    1.基本型

    型別說明符為int,在記憶體中佔2個位元組,其取值為基本整常數。

    2.短整量

    型別說明符為shortint或short"C110F1。所佔位元組和取值範圍均與基本型相同。

    3.長整型

    型別說明符為longint或long,在記憶體中佔4個位元組,其取值為長整常數。

    4.無符號型

    型別說明符為unsigned。

    無符號型又可與上述三種類型匹配而構成:

    (1)無符號基本型型別說明符為unsignedint或unsigned。

    (2)無符號短整型型別說明符為unsignedshort

  • 中秋節和大豐收的關聯?
  • 籃球中的帶球走是什麼意思?