一、資料型別
為什麼對資料進行分類:節約儲存空間,節約執行速度
可以使用sizeof計算型別的位元組數
整形:signed:
signed char 1 -128~127
signed short 2 -32768~32767
signed int 4 2開頭十位整數(正負20億)
signed long 4/8 2開頭十位整數(正負20億)/9開頭的十九位整數
signed long long 8 9開頭的十九位整數
unsigned:
unsigned char 1 0~255
unsigned short 2 0~65535
unsigned int 4 0~40億
unsigned long 4/8 0~40億/1開頭二十位整數
unsigned long long 8 1開頭二十位整數
注意:由於定義無符號資料時比較麻煩,標準庫把這些無符號型別重新定義成需要包含標頭檔案 stdint.h
uint8_t、uint16_t、uint32_t、uint64_t
int8_t、int16_t、int32_t、int64_t
浮點:float 4
double 8
long double 12/16
注意:採用科學計數法,二進位制與真實資料之間需要翻譯,小數點後六位有效
模擬:char 字元其實就是符號或圖案,在記憶體中儲存的是整數,需要顯示時會根據ascii表
『\0』 0 特殊字元,字串的結束標誌
『0』 48
『a』 65
『a』 97
bool 布林 先有了c語言之後才有bool型別,所以c語言不可能有真正的布林型別,
bool true false
二.變數與常量
變數:程式在執行期間數值可以變化的叫變數,相當於儲存資料的盒子
定義:型別 變數名;
int num;
取名規則:
1、由字母、數字、下劃線組成
2、不能以數字開頭
3、不能與關鍵字(32)重名,能默寫
4、見名知義(功能、型別、範圍)
使用:賦值:num=10;
參與運算:num*100;
printf scanf bool sizeof
注意:變數的預設值時隨機的,為了安全要對它進行初始化,一般初始化為0
變數的輸入、輸出:
int printf(const char *format,…);
功能:輸出資料
format:雙引號包含的格式資訊(佔位符)
…:變數位址列表
注意:scanf需要的是變數型別和變數位址,變數位址=&變數名
返回值:輸出字元個數
型別佔位符:c語言通過站位方式來傳遞變數的型別
%hhu %hu %u %llu
%hhd %hd %d %lld
%f %lf %lf,
常量:程式在執行期間數值不可以變化的叫常量
字面值常量
100 預設int型別
100l long
100ll long long
100u unsigned int
100lu unsigned long
100llu unsigned long long
3.14 預設double型別
3.14f float
3.14l long double
『a』「hello world」
三、格式化輸入輸出
%nd 顯示n個字元寬度,不夠則補空格,右對齊
%-nd 顯示n個字元寬度,不夠則補空格,左對齊
%0nd 顯示n個字元寬度,不夠則補0
%n.m 顯示n個字元寬度(小數點算一位),不夠則補空格,m表示小數點後的位數
%g 不顯示小數點後多餘的零
四、運算子
自變運算子:++/-- 使變數的值自動加一或減一
前自變:變數的值立即加1,立即生效
後自變:該行語句結束才生效,下一行才生效
注意:不要一行**中多次使用自變運算子。
算術運算子:+ - * / %(取餘)
整數/整數沒有小數點
/ % 除數不能為零,否則會產生浮點數例外,核心轉儲
*******(重點)== 變數盡量放在右邊
關係運算子:>< >= <= == !=
比較的結果是0或1 比較結果還能繼續參與運算
10 < n < 100 結果永遠為真,與數學中的運算規則不同
邏輯運算子:&& || !
會把運算物件轉換邏輯值,0轉換為假,非0轉換為真
a && b 一假即假
a | | b 一真即真
!a 求反
&& || 具有短路特性,黨左邊值可以確定表示式的結果,右邊不再計算
三目運算子:運算物件由三部分
a?b:c; 判斷a的值如果為真執行b,如果為假執行c
該語句中不能使用流程控制語句,因為它必須要有運算結果
賦值運算子:+= *= /= …
a += b;a = a+b;
a = b;a = ab;
位運算子:& | ~ ^ >> <<
五、型別轉換
自動型別轉換:
只有相同型別的資料才能進行運算,不同型別資料轉換城相同型別再進行運算
轉換規則(以不丟失資料為基礎,適當犧牲一些空間):
1、位元組少向位元組多的轉換
2、有符號向無符號轉換
3、整型向浮點轉換
強制型別轉換:
(型別)資料 有丟失資料的風險,慎重使用
六、分支語句
1 if(表示式)//單分支
2 if(表示式)//雙分支
else
3 if(表示式1)//多分支
else if(表示式2)
else
C語言標準
寫在前面 k r c不用說。個人以為,我們平常說的標準c,指的是ansi c,iso c,c89,c90。k r c ansi c和iso c c 的第乙個標準是由ansi發布的。雖然這份文件後來被國際標準化組織 iso 採納並且iso發布的修訂版也被ansi採納了,但名稱ansi c 而不是 is...
C語言標準
c語言標準 寫在前面 k r c不用說。個人以為,我們平常說的標準c,指的是ansi c,iso c,c89,c90。k r c 1978年,丹尼斯 里奇 dennis ritchie 和布萊恩 柯林漢 brian kernighan 合作出版了 c程式語言 的第一版。書中介紹的c語言標準也被c語言...
標準C語言
1 檔案相關 建立檔案 touch 檔名 原本是用來修改檔案屬性的,但如果檔案不存在 會自動把檔案建立出來。刪除檔案 rm 檔名 此命令刪除時不經過 站,檔案恢復困難。複製檔案 cp 原始檔 目標位置 在複製過程中可以修改檔名。移植檔案 mv 原始檔 目標位置 用法與cp基本一致,區別是cp原始檔還...