限定符
|
含義
|
extern
|
聲明一個變量,extern聲明的變量沒有建立存儲空間。
extern int a;//變量在定義的時候創建存儲空間
|
const
|
定義一個常量,常量的值不能修改。
const int a = 10;
|
Volatile
|
防止編譯器優化代碼
|
register
|
定義寄存器變量,提高效率。register是建議型的指令,而不是命令型的指令,如果CPU有空閑寄存器,那么register就生效,如果沒有空閑寄存器,那么register無效。
|
字符串格式化輸出和輸入
字符串常量
- 字符串是內存中一段連續的char空間,以'\0'(數字0)結尾。
- 字符串常量是由雙引號括起來的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
字符串常量與字符常量的不同:

每個字符串的結尾,編譯器會自動的添加一個結束標志位'\0',即 "a" 包含兩個字符'a'和’\0’。
十進制
|
以正常數字1-9開頭,如123
|
八進制
|
以數字0開頭,如0123
|
十六進制
|
以0x開頭,如0x123
|
二進制
|
C語言不能直接書寫二進制數
|
printf是輸出一個字符串,putchar輸出一個char。
printf格式字符:
打印格式
|
對應數據類型
|
含義
|
%d
|
int
|
接受整數值並將它表示為有符號的十進制整數
|
%hd
|
short int
|
短整數
|
%hu
|
unsigned short
|
無符號短整數
|
%o
|
unsigned int
|
無符號8進制整數
|
%u
|
unsigned int
|
無符號10進制整數
|
%x,%X
|
unsigned int
|
無符號16進制整數,x對應的是abcdef,X對應的是
ABCDEF
|
%f
|
float
|
單精度浮點數
|
%lf
|
double
|
雙精度浮點數
|
%e,%E
|
double
|
科學計數法表示的數,此處"e"的大小寫代表在輸出
時用的
"e"的大小寫
|
%c
|
char
|
字符型。可以把輸入的數字按照ASCII碼相應轉
換’對應的字符
|
%s
|
char *
|
字符串。輸出字符串中的字符直至字符串中的空字符
(字符串以'\0‘結尾,這個'\0'即空字符)
|
%p
|
void *
|
以16進制形式輸出指針
|
%%
|
%
|
輸出一個百分號
|
%d 整形 int
%f 浮點型 float
%c 字符型 char
%hd 短整型 short
%ld 長整形 long
%lld 長長整形 long long
//sizeof 計算數據類型在內存中占的字節(BYTE)大小
//sizeof(數據類型) sizeof(變量名) sizeof 變量名
printf附加格式:
字符
|
含義
|
l(字母l)
|
附加在d,u,x,o前面,表示長整數
|
-
|
左對齊
|
m(代表一個整數)
|
數據最小寬度
|
0(數字0)
|
將輸出的前面補上0直到占滿指定列寬為止不可以搭配使用-
|
m(代表一個整數)
|
m指域寬,即對應的輸出項在輸出設備上所占的字符數。n指精度,用於說明輸出的實型數的小數位數。
對數值型的來
說,未指定n時,隱含的精度為n=6位。
|
- getchar是從標准輸入設備讀取一個char。
- scanf通過%轉義的方式可以得到用戶通過標准輸入設備輸入的數據。