1. 程式人生 > >C語言基礎篇(二)運算子

C語言基礎篇(二)運算子

導航:   2.1 算數運算子   2.2 邏輯運算子   2.3 位運算   2.4 賦值運算   2.5 記憶體訪問符號 ----->x<------------->x<--------------->x<--------------->x<------------->x<-----   2.1 算數運算子             -- +, -
                在 +(-) 兩邊的資料型別,儘量一致.比如: A + B, A和B的型別儘量一致, 在定義加法的時候,可以加小括號(),這樣                 可以避免語法邏輯錯誤 .               -- *, /, %
                在cpu中, 其實是沒有 乘法 和 除法 的. cpu只能通過軟體模擬的方式, 來翻譯這種操作.                 比如 : int a = b *10; cpu會用很多的模擬演算法, 來解釋 * 這種演算法. 效率是非常低的 .
                如果是我們自己開發邏輯程式的話, * 和 / 是無法實現的. 所以 * 和 / 儘量少用 .
                % 是求模. 實際上就是取餘數 .                 求模的特性就是                 res = x % n; 那麼 res 的範圍就是 0 ~ (n-1)                     什麼時候用呢?                     給一個任意的數字, 可能就是隨機數, 這個數字我們要得到一個 1 ~ 100 裡面的數,                     res = x % 100; //0 ~ 99;                     res += 1;       // 1 ~ 100;                          2.2 邏輯運算子             真 和 假 的選擇. ( 非0 和 0 )             -- |, ||; &, &&                 問: A || B 是否等價於 B || A ??                 答: 不等價. cpu 看到 A 已經是真了, 就不會去計算B的值. 同樣 (A && B) != (B && A)                 ----------------------->                 int main (void){
                    int a = 10;                     int res;                     res = ((a == 10) || printf("我並不會被執行,因為(a == 10)成立,為真,就不會來判斷我了. \n"));                     return 0;                 }                 -----------------------<
            -- >>, >=, <, <=                 略 .               -- !                 原本如果是真, 加了!號後就是假. 對比取反~ .                 !:  char a = 0x01;   !a ==0x00;                  //原本非零的真,!後就是為0的假 .                 ~: char b = 0x01;   ~b == 11111110 == 0xfe;   //按位取反,0~1 1~0.
            -- ?, :                 常用與三元運算子 .         2.3 位運算         2.4 賦值運算         2.5 記憶體訪問符號