C語言 操作符的結合性

2022-07-19 09:57:15 字數 1060 閱讀 2229

記得以前學c的時候老喜歡考 ++ 操作符,公司筆試面試題也出現過

在此提供一些題:我個人的理解放在最後

a : 

int main()

//

執行結果是15,

b:

int main()

//

執行結果是15,

c:

int main()

//

執行結果是13,

d;

int main()

//

執行結果是20,

e:

int main()

{

int c=4;

int b; 

b=(c++) + (c++)+ (++c)+(c++) ;

printf("b= %d ",b);

return 0;

執行結果是18,

理解:1. ++在前的意思是「先加後用」,這裡蘊含的意思是說,只要遇到++在前那麼馬上將記憶體中的變數加一,++在後的意思是」先用後加「這個「後加」的意思是語句結束(分號為語句結束)後才加,沒結束 是記憶體中還是儲存原來的值.

2.還有加號是二元操作符,兩個運算元算做乙個運算,且是從左到右結合的(等號是從右至左)。

於是:

int b; 

b=(c++)

+ (++c)

+ (c++) ;// 5 + 5 + 5 。第乙個是5是因為第二個運算元執行後,記憶體中的c已經變為5了.

答案便是15了

關於C語言操作符結合性的學習總結(收穫很多)

右結合性,就是在表示式中最右邊的操作最先執行,然後從右到左依次執行。左結合性的操作符 如位操作符 和 則是從左至右依次執行。在標準c語言的文件裡,對操作符的結合性並沒有做出非常清楚的解釋。乙個滿分的回答是 它是仲裁者,在幾個操作符具有相同的優先順序時決定先執行哪乙個。每個操作符擁有某一級別的優先順序...

c語言操作符 位操作符 移位操作符

1 按位操作符 1.1 按位 與 雙目運算子 僅當兩個運算元都為1時,結果為1,否則為0。參與運算的數以補碼方式出現。例 9 5 1 0000 1001 9的補碼 0000 0101 5的補碼 0000 0001 1的補碼 應用 a 通常將某些位清零或保留某些位。例如 將a的高八位清零,保留低八位,...

C語言 , 操作符

例如 define to string s s 將會使編譯器把以下命令 cout to string hello world endl 理解為cout hello world endl 例如 define concatenate x,y x y int xy 10 將會使編譯器把 cout conc...