c語言printf函式

2022-03-10 02:13:00 字數 1479 閱讀 3371

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第一個引數是...