一、整型
int
- 取值範圍:-32768~32767
unsigned int
- 取值範圍:0~65535
short /short int
- 取值範圍:比int小
unsigned short
- 無符号短整型
long
- 長整型
- 定義時,後面加上l或L
有符号與無符号數:
- unsigned:無符号數,一般用來表示資料
- signed:有符号數,一般用來表示數字
整型占位符:
int
- 使用%d
unsigned int
- 使用%u
long
- 10進制顯示:%ld。 如果系統中int與long大小相同,用%d也可以
- 8進制顯示:%lo
- 16進制顯示:%lx
unsigned long
- %lu
short
- 10進制顯示:%d、%hd
- 8進制顯示:% ho
二、字元型
char
- 占位符:%c
- 有符号的範圍:-128~127
- 無符号的範圍:0~255
轉義字元
\a | 警告 |
\b | 倒退 |
\f | 換頁 |
\n | 換行 |
\r | 回車 |
\t | 水準制表符 |
\v | 垂直制表符 |
\\ | 反斜杠\ |
\' | 單引号 |
\" | 雙引号 |
\? | 問号 |
\0oo | 八進制值(oo必須是有效的八進制數,即0~7中的一個數) |
\xx | xx也是八進制值 |
\xhh | 十六進制數(hh必須是有效的十六進制數,即0~f中的一個數) |
- 例如:\x4d ==>字元M \12(換行符)
- 鍵盤按住alt不送,鍵盤輸入數字,松開alt,就會列印數字對應的字元
三、浮點型
float
- 精确到小數點後6~7位。4位元組
- 占位符:%f
- 定義時,後面加上f或F。如果沒有加,編輯器會預設幫你更新為double類型
double
- 精确到小數點16-17位。8位元組
- 占位符:%lf
long double
- float:對速度快,精度要求不高時使用
- double:對精度要求高,資料很大的時候使用
四、void
- void a; //a并沒有什麼意義,也沒有開辟空間,隻是聲明有這個變量而已。等到強制類型轉化時才開辟空間存儲
五、列印八進制、十六進制
- 8進制:字首0
- 16進制:字首0x或0X
- %o:8進制顯示數字
- %x:16進制顯示數字
- %#o:8進制數字前面帶有0字首
- %#x、%#X:16進制數字前面帶有0x或0X字首
- int a=08; //08位八進制數
- int b=0x15; //15為十六進制數
六、ASCII
這裡大家需要記住幾個常用的 字元'0'對應的碼值是48 ,字元’A‘對應的碼值是65, ’a‘對應的是97.
如果你已經有一定的C語言基礎了,那麼你可以看這塊代碼:
這段代碼就是将你輸入的字元進行強制轉換成int類型的值。
#include <stdio.h>
int main(){
char a = ' ';
int b = 0;
while(1){
a = getchar();
b = (int)a;
printf("%d",b);
}
}
下面是我通過GDB斷點調試,列印輸出a的位址,以及a位址内的值,可以看出,實際上字元在記憶體裡的值仍然是97(隻不過我把它轉成10進制,當然你可以看二進制的數值)