- ベストアンサー
C言語の文の読み込み順番
- C言語の文の読み込み順番は以下の通りです。
- 1. #include "stdio.h"
- 2. int tasizan(int a,int b){
- みんなの回答 (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:」としてある。
その他の回答 (4)
- Tacosan
- ベストアンサー率23% (3656/15482)
関数 tasizan の本体の実行は, main における c=tasizan(a,b); の実行の途中に行われます. なので, 行単位で実行順序を考えるのは不適切.
お礼
間違いのご指摘ありがとうございました。
- kngj1740
- ベストアンサー率18% (197/1052)
文を読み込む順番の定義ですがコンパイラーは最初の行から順に読み込みます。int tasizan(int a,int b){・・・がmainより前にあるのはそのためです。mainの後におく場合は関数の宣言文だけをmainの前に置かなければなりません。実行の順番はmainの先頭から行われます。関数呼び出しのところで関数が呼び出されて実行され、呼び出したところの次にに戻ります。
お礼
ちょっと難しかったです^^
補足
つまりこの画像http://imgur.com/gsPTatj.jpgであってるということですか? 実行の順番のことです。
- hitomura
- ベストアンサー率48% (325/664)
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:
お礼
^^;
補足
初心者なので意味が分かりませんがhttp://imgur.com/gsPTatj.jpg([修正](2)はint tasizan(int a,int b)まで含める) 大胆に描くとこんな感じでいいのでしょうか?
- wormhole
- ベストアンサー率28% (1626/5665)
読み込む順とは、何が読み込む順ですか?
お礼
^^;
お礼
そうゆう結果がほしかったんです!ありがとうございました!