• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語の簡単な質問です。)

C言語の文の読み込み順番

このQ&Aのポイント
  • C言語の文の読み込み順番は以下の通りです。
  • 1. #include "stdio.h"
  • 2. int tasizan(int a,int b){

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

>つまりこの画像http://imgur.com/gsPTatj.jpgであってるということですか? 実行の順番のことです。 惜しいけど、間違っている。 実行の順番は、以下の通り。 x:int tasizan(int a,int b){ x: 5:int c;  ⇐ 最初に変数cの領域を確保して 6:  a+b; ⇐ 足し算を行ってから 7:c=    ⇐ 結果をcに代入 8:     c;⇐ 最後にcを取り出してから 9:return  ⇐ cを破棄してから、cの値を持って呼び出し元に戻る x:} x:int main(void){ x: 1:int a,b,c; 2:a=1; 3:b=1; 4:  tasizan(a,b); ⇐ tasizannの呼び出し 10:c=        ⇐ 呼び出し結果をcに代入 11:printf("%d+%d=%d",a,b,c); 12:return 0; x:} 4番と10番のように「1つの行」の途中で、間に5~9番が入り込む。 また、6番と7番のように「行の左右で順番が入れ替わる」こともある。 更に、8番と9番のように、1つのステートメントで色々な事をする。 なので、行単位では「実行順」は議論できない。 あと「x:」になっている行は「特に実行する事がない」ので「x:」としてある。

mitsudai328
質問者

お礼

そうゆう結果がほしかったんです!ありがとうございました!

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

関数 tasizan の本体の実行は, main における c=tasizan(a,b); の実行の途中に行われます. なので, 行単位で実行順序を考えるのは不適切.

mitsudai328
質問者

お礼

間違いのご指摘ありがとうございました。

  • kngj1740
  • ベストアンサー率18% (197/1052)
回答No.3

文を読み込む順番の定義ですがコンパイラーは最初の行から順に読み込みます。int tasizan(int a,int b){・・・がmainより前にあるのはそのためです。mainの後におく場合は関数の宣言文だけをmainの前に置かなければなりません。実行の順番はmainの先頭から行われます。関数呼び出しのところで関数が呼び出されて実行され、呼び出したところの次にに戻ります。

mitsudai328
質問者

お礼

ちょっと難しかったです^^

mitsudai328
質問者

補足

つまりこの画像http://imgur.com/gsPTatj.jpgであってるということですか? 実行の順番のことです。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

1: ……(中略)…… n: n + 1: { n + 2: int a,b,c; n + 3: a=1; n + 4: b=1; n + 5: a または b n + 6: a または b n + 7: { n + 8: int c; n + 9: a+b; n + 10: c=(11: の結果) n + 11: return c; n + 12: } n + 13: c=(12: の結果) n + 14: a,b, またはc n + 15: a,b, またはc n + 16: a,b, またはc ……(中略:printf の呼び出し・内部・後処理)…… m + 1: return 0; m + 2: } m + 3: ……(中略)…… k:

mitsudai328
質問者

お礼

^^;

mitsudai328
質問者

補足

初心者なので意味が分かりませんがhttp://imgur.com/gsPTatj.jpg([修正](2)はint tasizan(int a,int b)まで含める) 大胆に描くとこんな感じでいいのでしょうか?

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

読み込む順とは、何が読み込む順ですか?

mitsudai328
質問者

お礼

^^;

関連するQ&A