1

みんな私はプログラミングが初めてで、ポストインクリメント値の結果に驚いていました。今では、次のコードを見つけて実行した後、混乱に陥っています。 3.インクリメントを終了します。i++ はどこで発生しますか? i の値が 1 に等しいのはどこですか?

int main()
{
int i, j;

for (int i =0; i<1; i++)
{
    printf("Value of 'i' in inner loo[ is %d \n", i);




    j=i;
    printf("Value of 'i' in  outter loop is %d \n", j);
            // the value of j=i is equals to 0, why variable i didn't increment here?
}
    //note if i increments after the statement inside for loop runs, then why j=i is equals to 4226400? isn't spose to be 1 already? bcause the inside statements were done, then the incrementation process? where does i increments and become equals 1? 
    //if we have j=; and print j here
//j=i;  //the ouput of j in console is 4226400
//when does i++ executes? or when does it becomes to i=1?



return 0;
}

Post インクリメントが値を使用して 1 を追加する場合は? 私は迷っています...説明してください...どうもありがとうございました。

4

6 に答える 6

2

あなたが何を求めているのかよくわかりませんが、whileループとして書き直した方が初心者にとって理解しやすい場合があります。

 int i = 0;
 while (i < 1)
 {
     ...
     i++;  // equivalent to "i = i + 1", in this case.
 }
于 2013-06-12T03:06:19.953 に答える
1

あなたのループは新しい変数iを宣言し、i以前に宣言されたmain(). したがって、ループの外側に割り当てるiと、そのコンテキストで初期化されていないため、未定義の動作が呼び出されます。ji

于 2013-06-12T03:07:53.760 に答える
0
for (i=0; i<x; i++)

に等しい

i=0;
while(i<x) {
    // body
    i = i + 1;
}
于 2013-06-12T03:07:03.607 に答える