C語言數據類型規則?
一、基本數據類型1. 基本數據類型的分類:
C語言中的三種基本數據類型是:整型 、實型 、字符型 。每種類型又可以分為常量和變量。
整型常量:(1) 十進制的整型常量:由數字0~9組成。如:0、10、365、-12等。
(2)八進制的整型常量:以0開頭,由數字0~7組成。如:0、010、0365、-012、011等。
(3)十六進制的整型常量:以0x或0X開頭,由數字0~9、a~z或A~Z組成。如:0x11、0Xffff、0xa5、-0XAC等。
注: C語言系統默認為基本整型常量 。(關于“基本整型”,請參考下面的內容)
整型變量:(1) 根據整數的最高位是否用作符號位,分為有符號(signed)整型和無符號(unsigned)整型。
(2)根據整數在計算機內存中所占用的空間大小,分為短整型(short int或short)、基本整型(int)和長整型(long int或long)。
short x = 10;等價于 signed short x = 10; 同時等價于signed short int x = 10;
int age = 20; 等價于signed int age = 20;
long z = 10000L; (加L后說明10000是一個長整型常量,而不是一個基本整型常量)
注:(1) C語言系統默認為有符號 整數。
(2) unsigned和signed不能同時出現。
(3) short和long不能同時出現。
實型常量:在C語言中,實型常量的兩種表現形式:小數形式和指數形式。或者叫做小數點式和字母E(或e)式。
(1)小數點式:
1.有且僅有一個小數點
2.小數點的左邊和右邊可以有一邊沒有數據,但不能同時沒有數據
舉例:3.14、0.1、10.、0.0、.0、-10.08
(2) 字母E(或e)式:
1.有且僅有一個字母E(或e)
2. 兩邊都必須有數據
3.左邊可以是整數,也可以是小數
4.右邊只能是整數
舉例:1e5、1.2E+4、3.0e-2、0e0、1.e0、.0e0
實型變量:分為單精度和雙精度兩種,單精度用float表示,雙精度用double表示。字符型常量:字符型常量的兩種表現形式:
(1)由一對單引號括起來的單個字符:
#include
void main()
{undefined
//這里只能把字符'c'接收進去,注意編譯時候的警告 ,這個應該和具體的機器有關,
//x86是小端存儲的,ppc是大端的,
//ppc中應該是把a接收進去
char c = 'abc';
printf("%c\n" ,c);
}
(2) 由一對單引號括起來的,里面是由反斜杠“\”引起的若干字符:
1.一般轉義字符,如:'\n'2. "\”與其后的1~3位 八進制數組成的八進制轉義字符,如:'\123'、'\0'、'\61'、'\101'
3. "\x”與其后的1~2位 十六進制數組成的十六進制轉義字符,如:'\x41'、'\x61'、'\x7F'。注意: 不能是大寫的“\X”。
字符型變量:注:字符變量中存放的實際上是該字符的ASCII碼,因為字符型數據都被處理成整型數據。
2. 舉例與注意事項:(1) unsigned:為無符號類型,只能表示大于或等于0的數。
signed:為帶符號類型,可以表示正數、負數和0。
(2) 32位機上,int與long的字長相同,均為4字節。
(3)以下程序的輸出結果是多少?
#include
void main()
{undefined
unsigned short x = 100000; //這條語句在編譯的時候會有警告,大整數被隱式轉換成無符號類型
unsigned int y = 100000;
int m = 034;
printf("hex :%x %x\n\dec:%d %d %d\n" ,x ,y ,x ,y,m);
}
結果:
hex : 86a0 186A0
dec: 34464 100000
注解 :unsigned short占兩個字節,編譯器對二進制表示截取低16位,相當于對65536求余(%),得34464 。
(4) 解釋以下字面值常量:
'a':char型字面值 L'a':wchar_t型字面值
"a":字符串字面值 L"a":寬字符串字面值
10:int型字面值 10L:long型字面值
10u:unsigned型字面值 10uL:unsigned long型字面值
012:八進制表示的int型字面值 0xC:十六進制表示的int型字面值
3.14:為double型字面值 3.14f:為float型字面值
3.14L:為long double型字面值
-10.:為double型字面值 -10e-2:為double型字面值
-10u:unsigned int型字面值 -10:int型字面值
非法常量:3.14UL、1024f
二、標識符
1. 標識符的規則和分類
(1) 標識符的命名規則:
1)只能由字母、數字和下劃線組成 2)第一個字符不能是數字 3)區分大小寫,如:int與Int是兩個不同的標識符。 4)盡量做到見名知義,如:int age = 10; (2) 分類: 1)關鍵字。如:int、float、double、auto等。 2)預定義標識符。包括函數名和預處理命令名。如:printf、scanf、main、sin、include、define等。 3)用戶標識符。不能使用關鍵字,可以使用預定義標識符。如:int printf = 0; int weight = 68;等。