自增和自減運算 自增和自減運算 比較運算符與比較表達式 比較運算符與比較表達式 邏輯運算符與邏輯表達式 邏輯運算符與邏輯表達式 IF結構 IF結構 變數的作用域 變數的作用域 ...
-
自增和自減運算
- 自增運算符
++ - 自增表達式
1>.前自增表達式.
int num = 1;
++num;
2>.後自增表達式
int num = 1;
num++;
3>.無論是前自增表達式還是後自增表達式,都是將自身的值加1.
- 自增表達式是一個表達式,既然是一個表達式,那麼這個表達式就一定有一個結果.
那麼我們就可以用一個變數將這個結果存儲起來.
1>.後自增表達式的結果的計算方式:
先將自身的值取出來作為後自增表達式的結果.然後再將自身的值+1.
2>.前自增表達式的結果的計算方式:
先將自身的值+1,然後再將自身的值取出來,作為表達式的結果.
a++ ——> 整個a++的式子的值是a ——> a的值是 a+1
++a ——> 整個++a的式子的值是a+1 ——> a的值是 a+1
a-- ——> 整個a--的式子的值是a ——> a的值是 a-1
--a ——> 整個--a的式子的值是a-1 ——> a的值是 a-1 - 自增運算符的優先順序要比算術運算符的優先順序高.
- 自減如是.
- 自增自減是一個單目運算(一個操作數)
-
比較運算符與比較表達式
- 比較運算符
> 大於
< 小於
>= 大於等於
<= 小於等於
== 等於
!= 不等於
- 比較表達式
由比較運算符連接起來的表達式.
int num1,num2;
num1 > num2;
- 比較表達式的結果的類型
1>.一個比較表達式代表: 1個條件.
而一個條件的結果: 成立或者不成立.真的或假的.
2>.在C語言中使用int數據類型的數據表示真假.
0 代表假
非0 代表真
3>.如果比較表達式所描述的結果成立,結果 = 1
如果比較表達式所描述的結果不成立,結果 = 0
註意:判斷兩個數據是否相等,是兩個等號==,1個等號叫賦值
- 比較表達式的兩邊可以使一個變數,也可以是常量,還可以是一個表達式.
如果比較運算符的一邊是表達式,會先計算這個表達式的結果,再與另一邊的比較.
例如:
int num1 = 100;
int num2 = 200;
int res = num1 + num2 > 300;
先計算num1 + num2 ,再與300比較.
- char數據也可以參與比較運算.
那麼比較的是相應的ASCII碼.
-
邏輯運算符與邏輯表達式
- 作用:判斷多個條件的.使用邏輯運算符來指定多個條件之間的關係.
- 邏輯運算符
&& 邏輯與 並且
|| 邏輯或
! 非
- 邏輯表達式: 由邏輯運算符連接起來的式子
邏輯表達式的結果:
0 假
非0 真
- && 邏輯與
1>.斷路問題:
邏輯表達式,在執行的時候,是先計算左邊的條件的結果,再計算右邊的條件的結果
當時&&邏輯運算符的時候,如果左邊的條件不成立,那麼整個邏輯表達式的結果為不成立.所以右邊的條件,系統不會去判斷,條件也不會被執行.
- || 邏輯或
當只有一個條件成立時,結果就成立.只有當兩邊的條件都不成立時,結果才不成立.
斷路問題:邏輯或也存在此問題,當左邊的條件為真時,右邊的條件不會判斷 - 優先順序:
邏輯運算符的優先順序 比 比較運算符的優先順序要低
- 邏輯運算符之間的優先順序
! 取反的優先順序最高
&& 其次的是邏輯與
|| 最後是邏輯或
優先順序 萬能公式
() ">" -(負號) ">" ! ">" 算數運算符(+-*/%) ">" 比較運算符(><==...) ">" && ">" ||
- 比較表達式和邏輯表達式. 統稱為條件表達式
條件表達式,描述的是一個或者多個條件.
-
IF結構
- 作用: 可以實現一段代碼只有在滿足特定條件的時候執行,否則不執行.
- 語法:
if(條件表達式)
{
代碼1
}
條件表達式: 比較表達式 和 邏輯表達式
- 執行步驟:
先判斷條件表達式的真假,如果為真,則執行代碼1,否則忽略代碼1,往下執行.
-
變數的作用域
- 變數的作用域如何尋找:
向外尋找包裹著這個變數定義的語句的最近一層的大括弧
- 尋找作用域
int main( )
{
int num = 1;
{
int num2 = 2;
{
int num3 = 3;
}
}
return 0;
}
以上num,num2,num3的作用域都不一樣.
- 變數在自己的作用域內可以被訪問,不受內層的大括弧限制
int main( )
{
int num = 1;
{
num = 2;
{
printf("%d\n",num);
}
}
return 0;
}
- 外層作用域可以和內層作用域的變數同名,使用遵循就近原則
int main( )
{
int num = 1;
{
int num = 2;
printf("%d\n",num);
}
return 0;
}
- 變數出了自己的作用域就會被操作系統從記憶體中回收,程式員就無權再使用
int main( )
{
{
int num = 2;
printf("%d\n",num);
}
printf("%d\n",num);
return 0;
}