2014-07-15 149 views
-1
#include <stdio.h> 

int i; 
int buf[20]; 

void main(){ 
    int x = 3; 
    for(i = 6; i < 12; i+2){ 
     buf[i] = 5; 
     printf("print1 : %d \n", i); 
     buf[i+1] = 5; 
     printf("print 2 :%d \n", i); 
    } 

    for(i = 6; i < 12; i++){ 
     printf("%d\n", buf[i]); 
    } 

} 

該代碼在進入英輝環和僅打印 打印1:6 打印2:6。 爲什麼?該程序進入無限循環

+0

在第一個循環中增加'i' :) – motoku

回答

5

因爲你不修改i

更改for(i = 6; i < 12; i+2)到:

for(i = 6; i < 12; i+=2) 
        ^^ 
2

你並不值回存到i這裏for(i = 6; i < 12; i+2)做到這一點

for(i = 6; i < 12; i=i+2) 
1

的問題是,i + 2是,不修改變量i表達式用於循環的終止條件。只需將其更改爲i += 2即可將i增加2。

+0

謝謝。這是一個愚蠢的錯誤:) – user3821434