/數據類型及佔用字節
char
1個字節{-128~127}
int
二、4個字節,取決於平臺是16位仍是32位機子{-65536~65535}
short int
2個字節{-32768~32767}
long int
4個字節{-2147483648~21474833647}
float
4個字節{-3.4*10^-38~3.4*10^38}
double
8個字節{-1.7*10-308~1.7*10^308}
long double
8個字節{1.7*10^-308~1.7*10^308}
/數據類型強制轉換時,由高階向低階轉換可能致使數據丟失;git
/前綴自增與後綴自增的區別在於:前綴先自增再賦值,後綴先賦值再自增;數組
/運算優先級口訣:
括號成員第一; //括號運算符[]() 成員運算符. ->
全體單目第二; //全部的單目運算符好比!、~、++、 --、 +(正)、 -(負) 、指針運算*、&
乘除餘三,加減四; //這個"餘"是指取餘運算即%
移位五,關係六; //移位運算符:<< >> ,關係:> < >= <= 等
等於(與)不等排第七; //即== 和!=
位與異或和位或; //這幾個都是位運算: 位與(&)異或(^)位或(|)
"三分天下"八九十;
邏輯或跟與; //邏輯運算符:|| 和 &&
十二和十一; //注意順序:優先級(||) 底於 優先級(&&)
條件高於賦值, //三目運算符優先級排到13 位只比賦值運算符和","高
逗號運算級最低! //逗號運算符優先級最低
/字符(串)的輸出和輸入
/putchar和getchar一次只能輸出和接收一個字符;
/puts和gets用來輸出和接收字符串;
/printf附加符號
/+、- 向右、向左對齊
/m.n m=數據最小寬度,n=取n個字符或小數
/for語句中,表達式2爲空 || 表達式3爲空 || 表達式全爲空,則說明是無限循環函數
/字符串操做
/字符串複製
/strcpy(目的字符數組,源字符數組)
/目的字符數組的長度必須足夠長,且不寫成數組名形式
/不能用賦值語句將一個字符串常量或字符數組賦值給一個字符數組
/strncpy(str2,s,i);將數組s的前i個字符複製到數組str2中
/字符串鏈接
/strcat(目的字符數組,源字符數組)
/目的字符數組的長度必須足夠長
/字符串比較
/strcmp(目的字符數組,源字符數組)
/返回值:
0 —— 字符串1 = 字符串2
正數 —— 字符串1 > 字符串2
負數 —— 字符串1 < 字符串2
/字符串大小寫轉換
/小寫轉大寫:strupr(數組)
/大寫轉小寫:strlwr(數組)指針
/字符串長度
/strlen(數組) [不含字符串結束標誌'\0s']
/函數
/內部函數(靜態函數):static
\使函數只侷限在函數所在的源文件中,若是在不一樣的源文\
\件中有相同的內部函數,則這些同名的函數是互不干擾的
/外部函數:extern
\能夠被其餘源文件調用的函數,即外部函數是共享的內存
/絕對值
/abs(); 求整數的絕對值
/labs(); 求長整數的絕對值
/fabs(); 求浮點數的絕對值字符串
/檢測參數是否字母:isalpha()
/是,返回非零值
/否,返回零get
/檢測參數是否數字:isdigit()
/是,返回非零值
/否,返回零
/檢測數字或字母:isalnum()
/是,返回非零值
/否,返回零
/變量存儲類型
/存儲空間:程序區、靜態存儲區、動態存儲區
/程序區: 放置用戶要執行的程序段
/靜態存儲區:放置靜態存儲的變量,全局變量都保存在靜態存儲區,所以,全局變量從程序執行時開始分配存儲單元,直到程序終止時,才釋放所佔的存儲單元
/動態存儲區:放置動態存儲的變量,如與堆棧操做相關的數據以及局部變量,所以,若是一個函數被調用了兩次,其中的變量存儲空間可能爲不一樣的地址 it
/自動變量:auto,動態分配存儲單元,用完就釋放,再次調用時從新計算
/靜態變量:static,靜態分配存儲單元,用完不釋放,再次調用時在上一次的基礎上繼續計算基礎
/寄存器變量register(屬於動態存儲方式)
/CPU訪問寄存器的速度要快於內存,所以register用於須要頻繁使用的變量
/但因爲寄存器數量有限,當計算機的寄存器不夠用時,變量是做爲自動變量處理的變量
/外部變量:extern(屬於靜態存儲方式) /就是全局變量 /可是能夠被其餘源文件調用/靜態外部變量:static /也是全局變量 /可是隻能被當前源文件使用