逗號運算符ide
逗號運算符優先級最低;函數
逗號運算符是用來分割多個表達式的;數學
由逗號運算符組成的逗號表達式的運算結果是:最後一個表達式的結果it
注意:class
int i;變量
i = 3,4,5,;數據類型
以上語句獲得的i的值爲3語法
i = (3, 4, 5);總結
獲得的i的值爲5數據
總結:
++i置前自增:先對i的值加1,而後用增1後的值參加全部的後續運算
i++滯後自增自減:先用變量原來的值參加全部的後續運算,直到本條語句全部的運算所有運算完畢後,纔對變量值加減1
滯後自增減在條表中的特殊表現:先利用原值參與條件判斷,而後馬上自增減;
滯後自增減在逗號表達式中的特殊表現:
int i = 3, j = 4, k;
k = (++i, j++, i++ * ++j);
printf("%d %d %d\n", i, j, k);
結果:
i = 5;
j = 6
k = 24
總結:
滯後自增遇到逗號運算符時馬上自增減,可是函數中的參數逗號除外
數據類型轉換
1.1)自動類型轉換
在某一次運算中,若是參與運算的兩個運算數的數據類型不一致,則C語言會對其自定進行數據類型轉換,且遵循以下原則:
短整型向長整型靠攏;
簡單數據類型向複雜數據類型靠攏;
以下兩個例子:
5.0 + 1/2
=5.0 +0
=5.0+0.0=5.0
5+1/2.0=5+1.0/2.0=5+0.5=5.0+0.5=5.5
數學運算式:1/1+1/2+1/3+.....+1/n
int i;
double s = 0;
for(i = 1; i <= n; i++)
s += 1.0/i;
1.2.強制類型轉換
語法:
(數據類型轉化)表達式
s += (double)1 / i;//強制類型轉換也是運算符,是單目運算符最低的
強制類型轉換以人類的意志爲原則
s +=(double)(1/i);//只是獲得0.0
強制類型轉換運算絕對不可能改變變量的數據類型
1.3自動強制類型轉換
這種運算只發生在賦值運算中
char c = 97.14159;
在賦值時候會丟失一些精度,輸出小寫字母a
double f = 'A';
輸出65.000
轉換原則:若賦值運算符兩側的數據類型不一致,則,由C語言對賦值運算符右側表達式時的值,進行自動類型轉換工做;且是按照賦值運算符左側的左值數據類型爲依據轉換的;