C的關鍵字
- 數據類型關鍵字:char、short、int、long、float、double、unsigned、signed、struct、union、enum、void
- 控制語句關鍵字:if、else、switch、case、default、for、do、while、break、continue、goto、return
- 存儲類關鍵字:auto、extern、register、static、const
- 其他關鍵字:sizeof、typedef、volatile
數據類型
- 基本類型:int、short、long、char、float、double
- 構造類型:數組、結構體(struct)、共用體(union)、枚舉(enum)
- 指針類型:char *、int *、int **等
常量與變量
- 常量:在程序運行過程中,其值不能被改變的量。
整型常量:0、-485、147
實型常量:3.14、0.256、-5.369
字符型常量:'q'、'd'、'2'
字符串常量:"abc"、"12345"、"a"
- 變量:在程序運行過程中,其值可以改變
命名規則:變量名只能由字母、數字、下划線組成;第一個字符必須為字母或下划線。
特點:變量在編譯時為其分配相應的內存地址,可以通過名字和地址訪問相應空間。
- 整型數據
整型常量:
十進制:以數字1-9開頭,如:781,2563
八進制:以數字0開頭,如:0123
十六進制:以0X開頭,如:0x2d
32位處理器下整型變量所占字節數:
有/無符號短整型(un/signed)short (int):2字節
有/無符號基本整型(un/signed)int:4字節
有/無符號長整型(un/signed)long (int):4字節
- 實型數據
實型常量:實數或浮點數,不以f結尾的常量是double類型的,以f結尾的常量(如:3.14f)是float類型的。
實型變量:有單精度(float)和雙精度(double)
float型:占4字節,7位有效數字
double型:占8字節,15~16位有效數字
- 字符數據
字符常量:用單引號括起來,如:'a'、'b'。
轉義字符:以反斜杠“\”開頭,后跟一個或幾個字符,如:'\n','\t'(占一個字節)。
字符變量:用char定義,每個字符變量被分配一個字節的內存空間,字符值以ASCII碼的形式存放在變量的內存單元中。如:a = 'x';a變量中存放的是字符'x'的ASCII碼值120。
- 字符串常量:由雙引號引起來的字符序列,如:"china"。
字符常量和字符串常量的不同:每個字符串的結尾,編譯器會自動的添加一個結束標志位'\0'。
- typedef 類型重定義:給已有的類型重新起個名字。
格式化輸出字符
%d:十進制有符號整數 %u:十進制無符號整數
%x:以十六進制表示的整數 %0:以8進制表示的整數
%f:float型浮點數 %lf:double型浮點數
%e:指數形式的浮點數 %p:指針的值
%s:字符串 %c:單個字符
特殊應用:
%3d:右對齊3位。
%03d:右對齊3位,不夠補0。
%-3d:左對齊3位。
%5.2f:右對齊5位數長(小數點也算一位),小數點后保留兩位小數。
數據的混合運算
- 自動轉換:遵循一定的規則,由編譯系統自動完成。
自動轉換的原則:占用內存字節數少的類型向占用內存字節數多的類型轉換。
轉換方向:
- 強制類型轉換:把表達式的運算結果強制轉換成所需的數據類型,類型說明符必須加括號。
格式:(類型說明符)(表達式)
例如:(float)a; //把a的值轉化為實型
(int)(x+y); //把x+y的結果值轉換為整型
無論是自動轉換還是強制類型轉換,都只是對變量的數據長度進行的臨時性轉換,不改變數據定義的類型。
運算符
- 自增自減運算符:使變量的值增1或減1。
++i,--i:先加/減,后使用。
如:i = 3;
j = ++i; //i的值先加1變為4,再賦給j,此時i、j的值均變為4
i++,i--:先使用,后加/減。
如:i = 3;
j = i++; //先將i的值賦給j,j的值為3,然后i再加1變為4
- 移位運算
左移<<:將一個數的二進制位左移,高位丟棄,低位補0。
算數右移>>:有符號數,如果為正數,則左邊移入0,右邊丟棄;如果為負數,左邊移入1,右邊丟棄。
邏輯右移>>:無論是正數還是負數,左邊均移入0,右邊丟棄。
- 優先級及結合性表格如下