C語言中的數據類型
變量的存儲
變量實例
int b = 10; int a = 20;
Scanf函數
int age; scanf("%d",&age);
注意:%d讀入十進制整數 %o讀入八進制整數 %x或%X讀入十六進制整數
用scanf函數輸入多個數據時,每個數值中間的分隔符是什麼輸入的時候就要輸入什麼,如果每個數值之間用空格隔開,我們在每輸入一個整數後必須輸入一個分割符,分隔符可以是空格、tab、回車。
scanf的第一個參數中不要包含\n,比如scanf(“%d\n”, &a); 這將導致scanf函數無法結束
算數運算
取余運算 兩個整數相除之後的余數 %兩側只能是整數 正負性取決於%左側的數值
強制類型轉換
double a = (double)(1 / 2);
sizeof
作用:用來計算一個變量或者一個常量、一種數據類型所占的內存字節數。
使用形式:sizeof( 變量\常量 ) sizeof 變量\常量 sizeof( 數據類型 )
條件判斷
在C語言中“任何非0值都為“真”,只有0才為“假”
關系比較注意點:
關系運算符的結合方向為“從左往右”: 4>3>2
關系運算符的優先級小於算術運算符:3+4>8-2
邏輯運算
1、&&邏輯與
1>使用格式 條件A && 條件B
2>運算結果 只有當條件A和條件B都成立時,結果才為1,也就是“真”,其他時候都為0,也就是“假”
3>運算過程 總是先判斷條件A是否成立
如果條件A成立,接著再判斷條件B是否成立:如果條件B成立,“條件A &&條件B”的結果就為1,即“真”,如果條件B不成立,結果就為0,即“假”
如果條件A不成立,就不會再去判斷條件B是否成立:因為條件A已經不成立了,不管條件B如何,“條件A &&條件B”的結果肯定是0,也就是“假”
4>注意
若想判斷a的值是否在(3, 5)范圍內,千萬不能寫成3<a<5,因為關系運算符的結合方向為“從左往右”。比如a為2,它會先算3<a,也就是3<2,條件不成立,結果為0。再與5比較,即0<5,條件成立,結果為1。因此 3<a<5的結果為1,條件成立,也就是說當a的值為2時,a的值是在(3, 5)范圍內的。這明顯是不對的。正確的判斷方法是:(a>3) && (a<5)
2、||邏輯或
1>使用格式 條件A || 條件B
2>運算結果 當條件A或條件B只要有一個成立時(也包括條件A和條件B都成立),結果就為1,也就是“真”;只有當條件A和條件B都不成立時,結果才為0,也就是“假”。
3>運算過程 總是先判斷條件A是否成立
3、!邏輯非
1>使用格式 !條件A
2>運算結果 真的變假,假的變真
4、優先級
表達式!(3>5) || (2<4) && (6<1) :先計算 !(3>5)、(2<4)、(6<1),結果為1,式子變為1 || 1 && 0,再計算1 && 0,式子變為1 || 0,最後的結果為1
表達式3+2<5||6>3 等價於 ((3+2) < 5) || (6>3),結果為1
表達式4>3 && !-5>2 等價於 (4>3) && ((!(-5)) > 2) ,結果為0
三目運算符
對於條件表達式b?x:y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。