逗號表達式與自增自減運算符和類型轉換的規

逗號運算符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語言對賦值運算符右側表達式時的值,進行自動類型轉換工做;且是按照賦值運算符左側的左值數據類型爲依據轉換的;

相關文章
相關標籤/搜索