自增自減運算例題詳解 自增自減運算的優(yōu)先級是怎樣的?
自增自減運算的優(yōu)先級是怎樣的?首先,優(yōu)先級是指當兩個操作“相鄰”時,應(yīng)該首先計算誰。最后一個優(yōu)先級是指I是(I)(盡管語法錯誤)。中間有一個*,所以——第二,你的代碼是UB,表達式求值和副作用是兩個不
自增自減運算的優(yōu)先級是怎樣的?
首先,優(yōu)先級是指當兩個操作“相鄰”時,應(yīng)該首先計算誰。最后一個優(yōu)先級是指I是(I)(盡管語法錯誤)。中間有一個*,所以——第二,你的代碼是UB,表達式求值和副作用是兩個不同的東西
操作優(yōu)先級,關(guān)聯(lián)性,求值順序,副作用和順序點-CSDN blog
這是一種特殊的運算符,自動遞增運算符和自動遞減運算符—變量運算的結(jié)果是增加1和減少1。例如--coutercouter--amountamount在這些例子中,運算符前后的效果是相同的,它們都是加1或減1,但是當它們作為其他表達式的一部分時,它們之間就有區(qū)別。如果運算符放在變量前面,則變量在運算之前完成自增或自減運算;如果運算符放在后面,則在變量參與表達式運算之后執(zhí)行自增和自減運算。這可能不是很清楚。讓我們看看下面的例子:num1=4num2=8A=num1b=num2a=num1。一般來說,這是一項任務(wù)。將num1的值賦給a,因為自動遞增運算符在變量前面,所以num1首先從1增加到5,然后賦給a,最后a也是5。B=num2這是將num2的值賦給B,因為自動遞增運算符在變量后面,所以首先將num2賦給B,B應(yīng)該是8,然后num2將從1增加到9。那么,我們?nèi)绾螒?yīng)對這種情況呢?C=num1 num2是C=(num1)num2還是C=num1(num2)取決于編譯器。不同的編譯器可能有不同的結(jié)果。所以我們在今后的編程中應(yīng)該盡量避免上述復雜的情況。
自增和自減的運算方法?
好吧,從自加(自減)的結(jié)果來看,都是加1(減1),這當然是真的。但在表達式中使用時會有所不同。以你為例,I=5。如果執(zhí)行以下語句:int b=I,b的值為5,I的值為6;如果b=I,b的值為6,I的值為6;因此I和I在表達式中使用時的區(qū)別是:前者先用I的當前值計算,然后加1;后者先用1計算,而自減法運算也是一樣的。我不知道我是否清楚