tamu- の回答履歴
全1件中1~1件表示
- C言語の質問です。
下記のコードでコンパイルすると成功しますが、実行時にエラーになります。 #include <stdio.h> int series(void); int main(void) { int i; for(i=0; i<10; i++) printf("%d ", series()); return 0; } /* これは正しくない */ int series(void) { int total; total = (total + 1423) % 1422; return total; } 解説には『ローカル変数の値はその関数が呼び出されている間だけ保持されます。 このプログラムはseries()関数を使ってある数列を作ろうとしていますが、 数列のそれぞれの数値を計算するのに1つ前の数値を使おうとしています。 しかし、変数totalの値はseries()の各関数呼び出しをまたがって保持される ことはないため、意図したとおりには動いてくれません。』とあります。 ローカル変数がその関数が呼び出されている間だけ保持されるのはわかりますが、 そのあとの解説の意味がわかりません。 どなたか詳しく解説していただけないでしょうか?お願いします!!