C 語言中賦值表達式的返回的邏輯值


我們知道,在C 語言中經常使用 諸如 if(表達式){} ,while (表達式) {} 形式的判斷語句,當表達式為真時執行 {} 中的函數體,但是當表達式為賦值表達式時怎么判斷該表達式為真還是為假?或者當表達式為逗號表達式式又該怎么使用?

記住一個原則:C語言賦值表達式所代表的值就是被賦值變量最終被賦予的值。

以下測試代碼可以證明以上觀點:

View Code
 1 #include <stdio.h>
 2 
 3 int main(int argc, const char *argv[])
 4 {
 5     int i;
 6     printf("the value is %d\n", i = -1);
 7     printf("the value is %d\n", i =123);
 8     printf("the value is %d\n", i = 0);
 9     return 0;
10 }

那么以下代碼的結果就很好理解了!

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char *argv[])
 4 {
 5     int i;
 6     //當賦值為0時賦值表達式代表的邏輯值為假,所以下列語句不會執行
 7     if (i=0) {
 8         printf("i=0\n");
 9     }
10     //當賦值為非0時賦值表達式代表的邏輯值為真,所以下列語句會執行
11     if (i=1) {
12         printf("i=1\n");
13     }
14     //當賦值為非0時賦值表達式代表的邏輯值為真,所以下列語句會執行
15     if (i=-1) {
16         printf("i=-1\n");
17     }
18     //逗號表達式代表的邏輯值為最后一個表達式的邏輯值,所以下列語句不會執行
19     if (i=1,i=0) {
20         printf("i=1,i=0\n");
21     }
22     //逗號表達式代表的邏輯值為最后一個表達式的邏輯值,所以下列語句會執行
23     if (i=0,i=1) {
24         printf("i=0,i=1\n");
25     }
26 
27 
28 
29     return 0;
30 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM