回覆列表
-
1 # 曲勝平420
-
2 # 手機使用者3503570243
寫成i=i++就是錯誤的,本來c語言設計i++的目的就是自增加,不需要再一次賦值,甚至都把i直接宣佈為暫存器變數,i++ 就只做一次inc彙編指令。 i=i+1就需要mov和add兩個彙編指令。
-
3 # 使用者646147438030396
#include <stdio.h>int main (void){int a = 1;int b = 1;int c;c=a+b;printf("%d\n",c);}輸出方式你可以自己修改。
我認為這倆程式碼邏輯意義完全一致。
彙編虛擬碼如下:
mov eax,I
inc eax //這個就是自加運算++
或者
add eax,1//這個是普通加法
mov I, eax
結果都是把i加1,inc指令比add指令更快,但是現代編譯器都會最佳化這個,改成Inc指令。
如果寫個j=i++,兩個就不同了,這個是把i原值傳給j,然後i再加1