數據類型及表達式很重要的,好好學
學習編程,光看是永遠學不會的,的注重實踐能力,對其多思考,在理解的基礎上多去敲,日積月累,就會對編程有感覺以及興趣,遇到困難,遇到挫折,很正常,克服就好
數據類型數據類型:計算機對數據的識别方式和存儲長度
1、計算機識别數據的方式
計算機隻能識别 0 和 1 ,對于 1001 0110 其解釋方式有很多,不同的數據類型其解釋就不一樣
1001 0110:我可以理解為:無符号數,整型、補碼、浮點數、ASCII 碼、指針(字節編号),等,怎麼确定到底是哪一個?取決于數據類型
2、存儲長度
計算機總是以 2 的整數次幂個字節來存儲數據,因此常見的長度為:1B、2B、4B、8B
其實這樣運算的:優先級() > *,所以先進行 2 > 1的運算,其結果為真,也就是1,1*5=5,其最終的輸出就為:5
寫一個 x 大于 2 小于 10 的數學表達式,10 > x > 2,C語言認為這個寫法是錯誤的,我們是在寫程序,不是在寫數學表達式,一定的記住:數學表達式跟程序還是有很大的差異的,正确寫法:2 < x && x < 10
3、邏輯運算符
! && ||
!(單目運算符:隻有一個操作對象),高于雙目運算符的優先級
對于邏輯運算符,C 語言會将兩側的當做表達式看待,其最終的結果是:0 為假,非 0 為真,是一個邏輯的判斷
4、賦值運算符
除了賦值運算符外,其他任何運算都不能改變變量的值
不能對常量或者表達式進行賦值運算
賦值的本質:覆蓋,覆蓋空間中的原值
(1)、簡單賦值運算符
= :僅僅比 , 運算符優先級高,變量 = 表達式
(2)、複合賦值運算符
= -= *= /= %=,僅僅比 , 運算符優先級高
n *= 4 6 // n = n * (4 6)
引入的意義:可以對 C 中變量名稱過長得到解決
(3)、自增、自減運算符
、--:運算符的本質是賦值運算符
均為單目運算符,優先級高于所有的雙目,且優先級低于 !(邏輯非)
i:先對變量 i 增 1,在參加其後所有運算
i :先用原值參加後續運算,本條語句執行完畢,在自增 1
5、三目運算符
? : 其優先級僅僅高于賦值運算符
語法:條表 ? 表1 : 表2,看前面表達式的結果,為真執行表 1,為假執行表 2
得到 a 和 b 中的最大值:a > b ? a : b;
6、逗号運算符
逗号運算符的優先級是最低的
逗号是用來分隔多個表達式的,其運算結果是:最後一個表達式的運算結果
補充四個問題1、關于運算符優先級的問題:
(1)、一次隻比較兩個相鄰運算符
(2)、一次隻處理相鄰兩個運算符中的一個
(3)、當前運算符是否運算,取決于與相鄰運算符的優先級比較結果:當前運算符 “低于” 其後的運算符,則不運算,否則,就運算
2、數據類型轉換
(1)、自動類型轉換
在參加運算的兩個運算數的數據類型不一樣,C 語言會對其進行自動的類型轉換工作,其原則如下:
由短類型向長類型進行靠攏,由簡單類型向複雜類型靠攏
char-->short-->int-->float-->double
(2)、強制類型轉換
語法:(數據類型名稱)表達式
source = (double) 1 / 5 //其結果就是double類型
強制類型轉換:僅僅是對這個變量的值進行轉換,是絕對不可能改變變量的數據類型,且也是運算符,是單目運算符中優先級最低的
3、短路運算
邏輯運算中的0、1鐵律:
0 && A ==> 0、1 && A ==> A
0 || A ==> A、1 || A ==> 1
短路運算是僅僅發生在邏輯運算表達式中
在 && 運算符的左側表達式的值為 0,或在 || 的左側為非 0 ,此時整個邏輯表達式的結果已經确定,C 語言會發生短路運算,即對于右側表達式不予運算
4、關于輸入/輸出函數
(1)、輸入、輸出是通過 C 語言調用 printf() scanf() 函數實現的
(2)、格式符是決定數值以怎樣的方式展現出來
(3)、在scanf()函數的" "中,除了寫格式符之外,不要寫任何其它東西,"%d%s%c"寫成這樣就好了
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!