當前位置:才華齋>IT認證>計算機等級>

計算機二級C語言資料型別及其運算

計算機等級 閱讀(1.44W)

從而使C語言的運算型別極其豐富,表示式型別多樣化。靈活使用各種運算子可以實現在其它高階語言中難以實現的運算。下面是小編整理的關於計算機二級C語言資料型別及其運算,希望大家認真閱讀!

計算機二級C語言資料型別及其運算

  ·資料型別

  ·儲存型別

  ·作用域

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

  1.基本資料型別

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

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

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

  ·陣列型別

  ·結構型別

  ·聯合型別

  3.指標型別

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

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

  整型量

整型量包括整型常量、整型變數。整型常量就是整常數。在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 -568 65535 1627

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

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

在程式中是根據字首來區分各種進位制數的。因此在書寫常數時不要把字首弄錯造成結果不正確。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。