一、基本資料類型
程式中使用的各種變量都需要遵循先定義再使用的原則,而對于變量的定義分為三個方面:資料類型,存儲類型和作用域
(一)資料類型可分為:基本資料類型,構造資料類型,指針類型,空類型四大類。
1 、基本資料類型最主要的特點是,其值不可以再分解為其它類型
2、構造資料類型的特點是,其值可以分為若幹個“成員”或“元素”,每個“成員”有事一個基本資料類型或者構造類型。在C語言中,構造類型有以下幾種:數組類型、結構體類型、共用體(聯合)類型
3 、指針是一種特殊的,同時又是具有重要作用的資料類型。其值用來表示某個變量在記憶體儲器中的位址。雖然指針變量的取值類似于整型量,但這是兩個類型完全不同的量,是以不能混為一談
4 、在調用函數值時,通常應向調用者傳回一個函數值,而有些函數不需要傳回值,這種函數可以定義為“空類型”。其類型說明符為void
(二)存儲類型分為包含四種 auto(自動變量) static (靜态變量) extern(外部變量) register(寄存器變量)。在C語言中常用的為靜态和外部變量
1 、 static 根據變量類型分為靜态局部變量和靜态全局變量。(1)靜态局部變量 它與局部變量的差別在于: 在函數退出時, 這個變量始終存在, 但不能被其它函數使用, 當再次進入該函數時, 将儲存上次的結果。其它與局部變量一樣(2)靜态全局變量它與全局變量的差別在于:全程變量可以再說明為外部變量(extern), 被其它源檔案使用, 而靜态全程變量卻不能再被說明為外部的, 即隻能被所在的源檔案使用。
2 、extern稱為外部變量。為了使變量除了在定義它的源檔案中可以使用外, 還要 被其它檔案使用。
二、整型資料的分類
(一)整型資料的一般分類如下:
1、 基本型:類型說明符為int,在記憶體中占2個位元組。
2、短整型:類型說明符為short int或short。所占位元組和取值範圍均與基本型相同。
3、長整型:類型說明符為long int或long,在記憶體中占4個位元組。
4、無符号型:類型說明符為unsigned。++i
(二)整型資料的表示方法
1、十進制數:十進制數沒有字首。其數位為0~9。其中0不能作為第一位
2、八進制數:八進制數必須以0開頭,即以0作為八進制數的字首。其數位為0~7。八進制數一般為無符号數
3、十六進制數:十六進制數字首0X或0x。其數位取值為0~9,A~F或a~f。
三、自增自減運算符
++i:i自增1後再參與其他運算(--i)與之相同
i++參與運算後,i的值再自增1.(i--)與之相同 (符号在前先運算再自增減,符号在後運後再自增減)
四、逗号運算符
在C語言中逗号“,”也是一種運算符,稱為逗号運算符其功能。是把兩個表達式連接配接起來組成一個表達式, 稱為逗号表達式。其一般形式為: 表達式1, 表達式2
其求值過程是分别求兩個表達式的值,并以表達式2的值作為整個逗号表達式的值。
1、逗号表達式一般形式中的表達式1和表達式2 也可以又是逗号表達式。表達式1, ( 表達式2, 表達式3 )形成了嵌套情形。是以可以吧逗号表達式擴充為以下形式:表達式1, 表達式2, …表達式n 整個逗号表達式的值等于表達式n的值
2、程式中使用逗号表達式,通常是要分别求逗号表達式内各表達式的值,并不一定要求整個逗号表達式的值。
3、并不是在所有出現逗号的地方都組成逗号表達式,如在變量說明中,函數參數表中逗号隻是用作各變量之間的間隔符。
比如
#include <stdio.h> int main(int argc, char *argv[]) {
int a1,a2,b=2,c=7,d=5;
a1=(++b,c--,d+3); // a2=0 b=3 c= 7(暫時按7算以下為6) d=5 a1=(d+3)=8
printf("a1=%d a2=%d b=%d c=%d d=%d", a1,a2,b,c,d);
// 列印結果為a1=8 a2=0 b=3 c=6 d=5
a2=++b,c--,d+3; // a2=4 b=4 c=6(現在為6以下為5) d=5
printf("a1=%d a2=%d b=%d c=%d d=%d", a1,a2,b,c,d);
// 列印結果為a1=8 a2=4 b=4 c=5 d=5
}