一、數據類型
為什么對數據進行分類:節約存儲空間,提高運行速度。整型:signedsigned char 1 -128~127signed short 2 -32678~32767signed int 4 正負20億signed long 4/8 正負20億/9開頭19位整數signed long long 8 9開頭19位整數注意:signed 不加就代碼unsigned:unsigned char 1 0~255unsigned short 2 0~65535unsigned int 4 0~40億unsigned long 4/8 0~40億/1開頭20位整數unsigned long long 8 1開頭20位整數注意:由于定義無符數據時比較麻煩,標準庫把這些無符類型重新定義成了以下類型需要包含頭文件 stdint.huint8_t、uint16_t、uint32_t、uint64_tint8_t、int16_t、int32_t、int64_t浮點:float 4double 8long double 12/16注意:采用科學計算法,二進制與真實數據之間需要翻譯,因此計算整數要比整型要慢。小數點后六位有效。模擬:char 字符其實就是符號或圖案,在內存中存儲的是整數,需要顯示時會根據ASCII表中的對應關系顯示出相應的符號或圖案。'\0' 0 特殊字符,字符串的結束標志。'0' 48 'A' 65'a' 97bool 布爾 先有了C語言之后才有 bool 類型,所有C語言不可能有真正布爾類型,stdbool.h頭文件對布爾類型做的模擬。bool true false
可以使用sizeof計算類型的字節數。
二、變量與常量
什么是變量:程序運行期間數值可以變化的叫變量,相當于存儲數據的盒子。
定義:類型 變量名;int num;取名規則:1、由字母、數字、下劃線組成2、不能以數字開頭3、不能與關鍵字重名,能默寫。4、見名知義(功能、類型、范圍)printf scanf bool注意:變量的默認值是隨機,為了安全要給初始化,一般初始化為0。
使用:賦值:num = 10;參與運算:num * 100;變量的輸入、輸出:int printf(const char *format, ...);功能:輸出數據format:雙引號包含的格式信息(提示信息+占位符)...:變量列表返回值:輸出字符個數int scanf(const char *format, ...);功能:輸入數據format:雙引號包含的格式信息(占位符)...:變量地址列表返回值:成功輸入變量的個數注意:scanf需要的是變量類型和變量地址,變量地址=&變量名類型占位符:C語言通過占位方式來傳遞變量的類型。%hhu %hu %u %lu %llu%hhd %hd %d %ld %lld%f %lf %LF什么是常量:程序運行期間數值不能變化的叫常量100 默認int100l long100ll long long100u unsigned int100lu unsigned long100llu unsigned long long3.14 默認double類型3.14f float3.14l long double
三、格式化輸入輸出
%nd 顯示n個字符寬度,不夠則補空格,右對齊
%-nd 顯示n個字符寬度,不夠則補空格,左對齊
%0nd 顯示n個字符寬度,不夠則補0
%n.mf 顯示n個字符寬度(小數點算一位),不夠則補空格,m表示小數點后的位數(四舍五入)
%g 不顯示小數點后多余的0
四、運算符
自變運算符:++/-- 使變量的值自動加1或減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 = a*b;位運算符:& | ~ ^ >> <<
五、類型轉換
自動類型轉換:
只有相同類型的數據才能進行運算,不同類型數據轉換成相同類型再進行云計算。
轉換規則(以不丟失數據為基礎,適當犧牲一些空間):1、字少的向字節多的轉。2、有符號向無符號轉。3、整型向浮點型轉。
強制類型轉換:(類型)數據 有丟失數據的風險,慎重使用。
六、分支語句
if(表達式)//單分支
{表達式值為真,執行此處代碼。
}if(表達式)//雙分支
{表達式值為真,執行此處代碼。
}
else
{表達式值為假,執行此處代碼。
}if(表達式1)//多分支
{表達式1值為真,執行此處代碼。
}
else if(表達式2)
{表達式2值為真,執行此處代碼。
}
else
{表達式1和2都為假,執行此處代碼。
}
跳轉到->> C語言基礎1>>