老問題 關於X 和 X及其X X

2021-07-26 16:33:45 字數 2498 閱讀 4301

1. x++

題目如下:

static

void

main(

string

args)

答案是多少呢?

x=6,y=15

現在修改一下**,如下:

static

void

main(

string

args)

答案變成了x=6,y=16

為什麼呢?

其實記住基本原理就可以無敵了:

x++ will 

return its old value and then 

increment the value.

下面這道題想必大家都知道答案了。

static

void

main(

string

args)

根據上面原則,x++增加x的值,但返回原來的值,所以x=5.

那麼下面應該返回多少呢?

static

void

main(

string

args)

有人有點暈了吧?是不是應該等於6呢?實際答案是x=5.再看看上面原理,自己理解下。

static

void

main(

string

args)

這個x等於多少呢?因為x++會加1,所以x=6.

再加多一行x++呢?如下:

static

void

main(

string

args)

x就乖乖遞增了,現在等於7.

2. ++x

現在變換一下,試試++x吧。

static

void

main(

string

args)

現在x=6.

那麼加上等號呢?

static

void

main(

string

args)

這次不是5了哦。x還是等於6.

為什麼呢?

++x

first 

increment the value, then return this value. 

所以++x會返回新值。

現在考考大家,下面的x等於多少呢?

static

void

main(

string

args)

正確答案是10.

3. x += x + x++ vs x += x++ + x

再看看下面的**,

static

void

main(

string

args)

答案是15還是16呢?

相信有不少同學認為是16,實際上正確答案是15.

別看x+= x+x++很複雜,有點繞,其實它等於x += x + x. 這下同學們明白了。那下面的答案應該是多少呢?

static

void

main(

string

args)

大家說那還不是一樣麼?x+=x+x啊,還是15.這次又錯啦。答案是16哦。

傻眼了吧?到底是怎麼回事呢?繞來繞去繞暈了啊。

我們來仔細解析一下吧:

x = x + x++;

1. x=(x) + x++ -->根據從左到右的運算法則。第乙個x即用括號括起來的x先進行運算,x本來為5,所以x=5 + x++

2. x= 5 + (x)++ -->這裡括起來的x為5, 所以x=5+ (5)++

3. x= 5 + (5)++ -->經過x++運算,x變為6,但是x++返回舊值,還是5,所以x= 5+5

4. x= 5+5 --> 返回10

5. x += x+ x++ --> 即 x+= 10, 即 x= x+10=15

所以這裡x=15.

x=x++ + x;

1. x=(x)++ + x --> x= (5)++ + x

2. x = (5++) + x --> x = 6 + x 

--> 返回11

所以最後x+= x++ + x 

-> 即 x+= 11, 即 x= x+11=16為16.

4. x = x + ++x vs x = ++x + x

見下面**:

static

void

main(

string

args)

結果為11

static

void

main(

string

args)

結果為12

關於x64彙編呼叫api的問題

以radasm為例子 win32彙編呼叫api比較簡單 invoke api名字,引數 64位的就不會了 用ida看了一下生成的彙編 下面是個例子 call cs getcurrentprocess mov r9d,0ch nsize mov r8,rdi lpbuffer mov rdx,rsi ...

關於NC6 X企業報表取不了數的問題及其解決方法。

關於nc6.x的企業報表取不了數,通常會遇到的問題如下幾個 遇到這種問題需要先進行排查。最一開始的就是檢查公式是否錯誤,這裡說的錯誤並不是指公式的語法有沒有報錯,因為通常到了取不了數這個地步的話,公式編輯器上的公式都是能夠通過的。所以檢查是否報錯時,需要檢查公式上面的引數是否與實際一致。比如如下幾種...

Qt中文亂碼問題在4 x版本和5 x版本的解決方法

qt程式中文經常亂碼,雖然有qstring fromlocal8bit 或者tr 函式可以將中文包起來,但是每個有中文的地方都輸一遍還是有點麻煩,希望 一勞永逸 地解決。在4.x版本中,可以使用qtextcodec類,在main函式一開始的時候做類似下面的設定 qtextcodec setcodec...