關於i 問題,關於i 和 i的問題

2023-01-04 23:00:23 字數 4528 閱讀 4367

1樓:古道林峰

首先:i++是先使用後加減,也就是說,先輸出i的值,然後i再加減++i是先加減,後使用,也就是說,先i加減,然後輸出i的值再次printf語句中,右邊的表示式是從右向左運算的,也就是說先算i--(表示式值是8,然後i變成7),然後i++(表示式的值是7,然後i變成8),然後--i(i先變成7,然後表示式的值就是i的值7),最後算++i(i先變成8,然後表示式的值就是i的值8)。

接下來就清楚了,輸出順序是

printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);

就是8 7 7 8

2樓:匿名使用者

這是一個謎,謎也是一種文化!

3樓:弭愷浦採楓

i++是先求i的值,再把i加1

同理:i--是先求i的值,再將i的值減1

4樓:步彤尋春綠

scanf("%lf,%lf,%lf",x,y,z);

這句你寫錯了

望了寫地址符號改為

答案應該是k=9.000000;

(x++,y--,x+y)

這句就是按順序做下去

表示式=x+y=1+3=4;

為什麼等於4?因為++,--在後是先進行表示式計算再進行自增自減!所以最後x=2,y=2,

如果++,--;在前的話表示式=2+4=6;x=2,y=2是不變的;

k=a((x++,y--,x+y),z--);=》k=a((x+y),z--)=(4,5)=9;z在進行表示式之後進行自減;z=4;

總上所述:x=2,y=2,z=4,k=9;

5樓:愛新覺羅々芸

因為所以科學道理。總之就是沒道理解釋。。└(^o^)┘

6樓:容和關靖易

答案應該是9

還有就是輸入那要有&

但是我執行沒有成功

不知道為什麼

關於i++和++i的問題

7樓:寒曦的海洋

逗號運算子可以保證運算從左到右依次執行,並返回最後一個表示式的值。前後運算是連續的,i會取上一次計算的結果。因此:

a=(i+8,7,i+7); // a=12 i=5 正確b=(i++,++i); // b=7 i=7 正確c=(i+7,i++); // !!! c=7 i=8

8樓:水瓶座秦時明月

不太明白你這道題的意思,給你講講i++和++i的區別吧:

i++的意思是先計算表示式的值,然後將i的值加1;++i是先將i的值加1,然後計算表示式的值。

例如,設i的初始值為2,有這麼兩個語句:s=(i++)+3;和s=(++i)+3;

第一個表示式中先算出s=i+3=5,該語句執行結束後,i的值就變成了3,

第二個表示式中先將i本身的值+1即i=3後計算s=i+3=6.

二者區別就在於 是在語句執行後加1還是執行結束前加1。

問題如下:-i++ 如何計算 15

9樓:匿名使用者

這個問題歷史悠久了悠久來回答一下吧。

-i++可以拆成兩句 -i和 i++ ,i後自增。

i=3,首先輸出-i為-3。這時候i還沒有變化,之後i++,若再輸出i,i便成了4。

我自己也在編譯器上試驗了一下,結果與我想的一樣。

10樓:匿名使用者

如何計算

先i++再取負,但是i++返回的是原來沒加1的i,所以取負運算的運算元還是3,所以結果是-3

11樓:

如果這句還有前面, 那就是: 前面- i 之後, i + 1

如沒有, 那就是: -1 * i , 之後, i + 1

12樓:匿名使用者

在vc6.0上的執行結果如上,

-和++運算子都屬第2級優先順序,同級運算子運算從左至右進行,即先計算-i,即取反,之後再把取反的結果加1.

13樓:匿名使用者

定義z=-i ;則z的值是-3,i的結果是4

等價於z=-(i )

14樓:

這個要先注意他要的是運算結束前的結果還是運算結束後的結果。

如果只是-i++,那麼他的值就是3.

如果是 某定義z=-i++;則z的值是2,i的結果在結束後依然為3.

因為i運算分三步。第一步:運算-i,i自減1,i等於2第二步:i賦值給z,z=2。.

第三步:i後自加,i++,i等於3.

像這樣的題目一定要先注意i是前自加還是後自加,以及運算子號的優先順序。

c語言關於i++的問題,是在下次迴圈i加1,還是說遇到i時加1?

15樓:hi漫海

i++的意思是將變數i中的

數值參加運算後,i中的數值自動加一。

「++」符號是程式語言中的自增運算子,作用是在執行後將變數的數值自動加一,「++」符號所處的位置不同,運算規則也不同,當「++」放在變數前方時,如 ++i,此時的作用是先將i變數中的數值進行加一運算,然後再將運算後的數值加入運算,而i++是先將i中的數值加入運算,然後再自加一。

16樓:匿名使用者

一、(i++)*(i++) 這種**,至今我也沒有在應用中見誰寫過,所以沒有必須分析這個!

二、for(j=0;j<4;j++) //這是一個for迴圈語句,括號中是三個步驟,

for( 初始化資料,只做一次; 迴圈條件,每次迴圈前先進行檢查,不成立,則結束迴圈; 迴圈變數變化 ,每次執行完迴圈體中的操作,就跳到這裡,進行迴圈變數改變 ) //三個步驟間以分號分隔

printf("%2d ",*(*(p+i)+j)) ; //迴圈第一次時,j=0 第二次時,j=1 。。。

17樓:匿名使用者

for語句是先執行 j = 0;j<4然後每次執行j<4;j++,第一次不執行j++.

18樓:軍師明眸

首先第一點, i++ 和 ++i 用法是不一樣的;對於 i++ 先使用i的值,然後i再加一

,而對於++i 是先讓i的值加一再用i的值。i-- 和 --i 也是同樣的道理,c語言書上有明確的講解,主要看一下書上給的例子。

其次,對於

for(j=0;j<4;j++)

是一個for迴圈,它執行的順序如下:

首先j的初始值是0,然後執行j<4,0<4成立,所以執行下面的printf函式,最後是執行j++(j的值加一變為二)。 接下來就是迴圈上面的步驟,一直到的值等於4為止停止迴圈。

要多看書,尤其是基礎,必須精讀。希望可以幫助你。

c++程式關於i++的問題

19樓:水上漂湯

k[1]

如何理解後置自增運算子?所有的運算子都可以理解為有返回值的函式呼叫。該運算子效果如下:

int operator++(int n)所以執行n++語句,相當於n=n+1,再返回n-1的值。也就是說n已經自增了,但是(n++)作為一個整體的值是n自增前的值,可以看作一個臨時常量

20樓:匿名使用者

n++; 跟 n=n+1;是同義的 ,所以 第一個k[n]中 肯定是 k[1]

估計是你想問++的問題,n++ 是 先取值再自加 ++n是先自加再取值

你的** 也可以改成

n=0;

for(i=0;i

21樓:

已經是k[1]了。因為之前n++導致n的值為1.

c++中 i++,++i的問題 20

22樓:在晴天的雨傘

主要差異在於返回值,相同點在於對i進行自加:

++i返回的是i自加後的內容,i++返回的是i未自加的內容。

舉個例子:

int i = 10;

a = i++;

vs int i = 10;

b = ++i;

結果分別是 i = 11, a = 10和 i = 11, b = 11。

將i++和++i彙編結果,若沒有使用其返回值賦值特性,結果是一樣的,有返回值差異在於彙編**執行先後(先自加還是先賦值)區別。

另外,關於for(i = 0; i < n; i++)與for(i = 0; i < n; ++i) 有差異的說法是扯淡的。現在我們看到的編譯器,基本都會彙編成相同的**(好像有基本經典教程說有差異,那只是針對古老的編譯器)。

23樓:匿名使用者

++i 是 先 i=i+1, 再讓i參與運算i++ 是先讓i參與運算, 然後 i=i+1,所以p = 5 + 5 + 5, ,i自身連續3次加1,所以i = 5+1+1+1=8

j=5+1+1+1 = 8 , q = 8+8+8= 24所以這個程式的答案是8,8,15,24(不是22)

I56500和I57500的主機板問題?

可以,intel200系列晶片組 代酷睿i都支援。i56500配什麼主機板 i56500配技嘉 gigabyte b150m d3h主機板 微星 msi b150m mortar主機板 華碩b150m addr4主機板等都可以。1 技嘉 gigabyte b150m d3h主機板。技嘉b150m d3h主機板是...

急,關於索愛W850I的問題

樓主朋友您好 個人認為您買到翻新機了 應為w850停產好長時間了,現在市場上的所謂的w850水貨機基本都是翻 新機,如果是新機器的話絕對不可能剛買沒幾天滑蓋就鬆動的 如果鍵盤鎖了的話過一會它自動就解鎖瞭然後又自己鎖上,又解就這樣迴圈.個人認為這個是軟體問題 正常的話如果鎖上了就不會手機自己自動解鎖還...

英語問題i,英語問題 i 中的 是什麼意思

1 test 2 plan 3 will,some 4 不會 5 send,to 英語問題 i 中的 是什麼意思 表示 長母音符號 意思就是發音長一點,i 中的 是表示長音得意思 長母音 i 是一個音標,看成一個整體,如果非要說 是什麼意思,可以理解成髮長音,把聲音拉長。英語 i 的變音問題 v t...