小記C++中+=與++的區別

    很多時候人們都認爲+=就是++或+,比如i++和i+=1是等價的,但其實不是如此,這個問題在i的類型是int時不會體現出來,但一旦不是,就是報錯。

    原因是,在i=i+1中,是先執行i+1,再對i賦值,也就是說=左右的類型判斷是在賦值完畢後才進行的,那麼當i爲short類型時,i+1自動轉換爲較大的數值類型(int型),此時等號左邊i是short型,右邊是int型,再賦值就會報錯。

    而如果是i+=1,就沒有這個問題,因爲沒有涉及中間變量的操作。同樣的自認爲+=的執行效率也要更高一些(當然沒有得到證實)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章