2

2 つのサブルーチンがあるとします。

  SUBROUTINE S2909                                                    
  COMMON X,Y
  X =2;
  Y =3;
  END

  SUBROUTINE S2900                                                    
  COMMON X,Y
   //display X and Y 
  END

COMMON ブロックは変数を共有するために使用されます。これは、サブルーチンで更新される の値がサブルーチンと同じになることを意味XYますS2909S2900?

4

2 に答える 2

1

私の理解では、はい、変数はプログラム全体で共有されています。それらの値は、サブルーチンが呼び出される順序によって異なります。

次のプログラム

program test
real x,y
common x,y

x = 1
y = 2

write(*,*) x,y
call changevals
write(*,*) x,y

end program test


subroutine changevals
real x,y
common x,y

x = 12
y = 13

end subroutine changevals

出力

1.00000 2.00000
12.00000 13.00000
于 2016-04-12T11:54:37.837 に答える