1樓:亓昂熙
"--"是一個算術運算子(--i)相當於i=i-1 ,++或--在i前面,說明程式會先把i的值-去1之後在用printf();這個函式輸出.
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
printf("%d \n",與%d對應的一個整數);
%d 代表此處將有一個整型來填充,\n代表換行
2樓:凹凸電競
在你的例子中:
++i是指先把i加上1再輸出i
--i是指先把i減去1再輸出i
i++是指先輸出i,再把i加上1
i--是指先輸出i,再把i減去1
i++等價於i=i+1
i--等價於i=i-1
++,--在i的前後順序對i的運算輸出是不一樣的
3樓:
結果為:98
89-8-9
解釋:\n是換行,++i是先加1再執行,--i是先減1再執行,i--是先執行後減1,i++是先執行再加1;-i++是先變成負值再執行(此時執行後雖得到的是-8,但計算機是按-8的絕對值繼續往下算的)再加1,-i--是先變成負值再執行在減1.
4樓:
我用gcc的執行結果如下:87
78-7-8
呵呵,輸出結果和大家所想的都不同啊。
++和--操作符具有***,c編譯器只保證這個***在整個表示式結束之前被計算,但其計算順序是不保證的。所以對於這個程式,我也不知道編譯器從**開始計算的,各個表示式計算的先後順序也不知道。
我看著像4,3,2,1,6,5
5樓:匿名使用者
應該先翻書~~
i=8;
++i; 自身+1,
i++; 這語句執行完後,自身+1
編譯器一般是倒這把引數壓入棧 (為了出棧時先取到第一個引數), 所以執行順序是倒著的
1. -i-- 表示式值為-8 i值為8(由於i--,是要在語句執行完後才-1,因此i仍然是8) (不能保證其他編譯器是否也是這樣的,可能i變為7,所以後面結果都會不一樣)
2. -i++ 表示式值為-8 i值為83. i-- 表示式值為8 i值為84.
i++ 表示式值為8 i值為85. --i 表示式值為7 i值為76. ++i 表示式值為8 i值為8那麼輸出就是 8 7 8 8 -8 -8
這題目答案未必是唯一的,不同的編譯器結果會不一樣 以上是vc輸出的結果
6樓:匿名使用者
++i 先進行++運算,再引用i值
i++ 先引用i值,再進行++運算
比如int i=5;
if(i++==5) //成立,先引用i值也是就5==5printf("%d",++i); //輸出為7 上面if語句後i已經等於6了再經過這裡的++i 先++ 等於7 再引用所以為7
C語言 printf函式,考考你C語言
汗!首先糾正你的程式有2個錯誤,1,main 定義錯誤,應該用 int main 2,你的第三個printf 你不感覺是錯誤的嗎?都不用試的。一看就知道 答案 是 4 hello embedded 因為。1,編譯器輸出的是你括號和封號裡的內容,所以封號不輸出。只輸出內容。2,編譯器會把你封號和封號之...
c語言中scanf和printf函式的問題關於雙精度
其實嚴格來說 兩個是一樣的 輸入的時候要用 lf 輸出的時候也要用 lf 的 f能輸出double 我也不懂 哈哈 你就按照 double 對應 lf 理解就可以了能輸出不影響 lf 不能輸入輸出double的時候再問也不遲 lf長浮點型,f浮點型 1f 小數點後1位 如果是 輸出printf 的輸...
c語言中printf直接列印兩個函式介面的返回值問題
輸出應該是sunday monday 第一行 是定義一個靜態的指標字串!第3行是定義一個靜態函式 strcpy buf,msg index 函式的意思吧msg index 複製到buf字串裡,然後現在計入main函式,輸出 計入函式get day傳入引數0進入函式就是msg指標陣列msg第一個引數是...