程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言學習筆記

C語言學習筆記

編輯:關於C
1、邏輯運算符 || &&       如果運算符左邊的子表達式決定了最終的結果,則右邊的子表達式不會計算       例如:       if(d != 0 && n/d > 0) {             /* average is greater than 0 */        }       if(p == NULL || *p == '\0') {             /* no string */        }       在第一個例子中,如果沒有短路行為,一旦d=0,則右邊的表達式會被0除--系統可能會崩潰;第二個例子中,如果p是空指針,則右邊的表達式引用一個空地址,從而可能導致系統崩潰。   2、C語言實參求值順序       C標准對實參的求值順序並沒有統一規定,但是多數系統對函數參數的求值順序是自右向左。       i = 3; printf("%d, %d\n", i, i++);       輸出結果是:4,3   3、i++ 與 ++i運算符       i = 3; j = (++i)+(++i)+(++i);       printf("j = %d, i = %d\n", j, i);       輸出結果為:j = 16, i = 6(gcc編譯器)        不同編譯器,結果可能不一樣。計算機在計算j = (a+b)+(c+d)+(e+f)時,先計算(a+b)+(c+d),並把結果存儲(例如:存儲在j中),然後再計算j+(e+f)=j;計算機中只有一個i,計算第二個i時,第一個i已改變。         int i = 1, j = 1, k;         i = (i++) + (++i);         k = (j++) + (++j);         printf("i = %d,j=%d, k=%d \n", i, j, k);         輸出結果為:i = 5, j = 3, k = 4(gcc編譯器)  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved