正文 第10章 數據類型、運算符和表達式3(1 / 2)

整型變量的定義格式一般如下:

整型變量類型符變量名[,變量名,……];

例如:

inta,b,c;/*定義三個整型變量a,b,c*/

longintx,y,z;/*定義三個長整型變量x,y,z*/

unsignedm,n;/*定義兩個無符號整型變量m,n*/

[例32]整型變量的定義與使用。

voidmain()

inta,b,c;

unsignedu;

a=20;

b=40;

c=30;

u=a+b+c;

printf("u=%u\n",u);

運行結果:

u=90

程序分析:

程序首先定義三個整型變量a、b、c和一個無符號整型變量u,然後對a、b、c三個變量進行賦值,將a+b+c的總和賦值給變量u,最後使用輸出函數printf輸出變量u的值。

4.整型數據的溢出

當整數的絕對值太大,以致超出整型數據所能表示的取值範圍時稱為整型數據溢出。例如,在16位機器上,int型整數能表示的最大正值為32767,最小負值為-32768,如果超過此範圍,將會產生數據溢出。

[例33]整型數據的溢出。

voidmain()

inta,b;

a=32767;

b=a+1;

printf("a=%d,b=%d\n",a,b);

運行結果:

a=32767,b=-32768

程序分析:

變量a的值是32767,它在內存中的存儲方式是:最高位為0,後15位全為1。

在16位機器中,一個整型變量隻能容納-32768~32767範圍內的數,超出此範圍就會發生數據溢出。整型常量溢出,編譯時產生語法錯誤。整型變量溢出,運行時並不報錯,但將得不到正確的結果,要靠程序員的細心和經驗來保證結果的正確。

為了避免數據溢出,可根據具體情況將整數相應地表示為長整型數、無符號整型數或無符號長整型數。解決方法是,對於整型常量可以通過加後綴l或L變成長整型常量,通過加後綴u或U變成無符號型常量,對於變量則定義為long、unsigned或unsignedlong類型。

實型也稱浮點型,實型數據包括實型常量和實型變量。

實型常量也稱為實數或浮點數。在C語言中實型常量有兩種表示方法:十進製小數形式和指數形式。

十進製小數形式:由數碼0~9和小數點組成,注意必須有小數點。如00、250、123、100.、-12345等均為合法的實數。

指數形式:由十進製數,階碼標誌符e或E和階碼組成,一般格式為:aEn(a為十進製數,n為十進製整數,不可省略),表示a×10n。21E5、37E-2、05E7、-28E-5均為合法的指數形式,E7(階碼E前無數字)、-5(無階碼標誌)、53.-E3(負號位置不對)、27E(無階碼)均為不合法的指數形式。一個實數有多種指數表示形式,其中有一種稱為規範化指數形式,即在e之前的小數部分小數點左邊有且隻有一位非零的數字,如:1252e3、23478e5是規範化指數形式,而0123e2(小數點左邊不是非零整數)、135e4(小數點左邊非零的數字超過1個)都不是規範化的指數形式。