I ++やC言語のマクロ定義のデモ

今日は非常に奇妙な特徴を見て、彼らが書き留め

コード:

する#include <stdio.hに> 
する#include < 文字列・H> に#define SQ(Y)((Y)*(Y))、
 int型のmain(){
     intは iは= 1 一方、(I <= 5 ){ 
        のprintf(" %のD ^ 2 =%D \ n "、I、SQ(I ++ ))。
        fflushは(STDOUT); 
    } 戻り0 
}



     

私は常に、結果は期待していなかった、次のサイクル++の値が使用されていることを考え、^ 2 = 1 1:これは私が常に出力の最初の行を考え、あります

右側に:SQ(I ++ )=((I ++)*(I ++))=「1 * 2 = 3 
の左にある:私はこの場所!!! 1に3(有料特別な注意を= !!!私はいつも、私は期待していなかったと思った二つの連続回私++ 3への後のiの値!)

 同様に利用でき、1より多くのI ++

 

おすすめ

転載: www.cnblogs.com/bbllw/p/12469359.html