主题:诡异的输出!!
PROGRAM main
implicit none
REAL::BETA(8)
INTEGER::I
WRITE(*,*) I
WRITE(*,*) I
DO I=1,31
WRITE(*,*) I
END DO
stop
end program main
分别输出:1244920,1244920,然后1到31
这个比较好理解,因为I事先未赋值,但是,中间若增加一行BETA的初始化操作,
情况会有些不同:
PROGRAM main
implicit none
REAL::BETA(8)
INTEGER::I
WRITE(*,*) I
BETA=(/(0,I=1,8)/)
WRITE(*,*) I
DO I=1,31
WRITE(*,*) I
END DO
stop
end program main
结果分别输出:0,0,然后1到31。
接下来,如果不再输出第一个I,结果又会发生改变:
PROGRAM main
implicit none
REAL::BETA(8)
INTEGER::I
BETA=(/(0,I=1,8)/)
WRITE(*,*) I
DO I=1,31
WRITE(*,*) I
END DO
stop
end program main
最后运行结果为:1244920,然后1到31
谁能给出一个解释?
implicit none
REAL::BETA(8)
INTEGER::I
WRITE(*,*) I
WRITE(*,*) I
DO I=1,31
WRITE(*,*) I
END DO
stop
end program main
分别输出:1244920,1244920,然后1到31
这个比较好理解,因为I事先未赋值,但是,中间若增加一行BETA的初始化操作,
情况会有些不同:
PROGRAM main
implicit none
REAL::BETA(8)
INTEGER::I
WRITE(*,*) I
BETA=(/(0,I=1,8)/)
WRITE(*,*) I
DO I=1,31
WRITE(*,*) I
END DO
stop
end program main
结果分别输出:0,0,然后1到31。
接下来,如果不再输出第一个I,结果又会发生改变:
PROGRAM main
implicit none
REAL::BETA(8)
INTEGER::I
BETA=(/(0,I=1,8)/)
WRITE(*,*) I
DO I=1,31
WRITE(*,*) I
END DO
stop
end program main
最后运行结果为:1244920,然后1到31
谁能给出一个解释?