#include <stdio.h>
int kansuu(int hikisuu1, int hikisuu2);
int main()
{
int modori;
modori = kansuu(2, 3);
printf("modori = %d\n", modori);
return 0;
}
int kansuu(int hikisuu1, int hikisuu2)
{
printf("kansuu de hyouji\n");
return hikisuu1 * hikisuu2;
}
 以上プログラムですが、
結果は以下です。
kansuu de hyouji
modori = 6

 素人の目からして!
printf("modori = %d\n", modori);が
 最初にあるので
 以下がコンパイル結果になりそうですが!?
modori = 6
kansuu de hyouji

 この場合なぜ!
kansuu de hyouji
 が最初になるのでしょうか!?
 
よろしくお願いします。

A 回答 (7件)

>  以下の使い方がいまいちわかりません?


> printf("kansuu de hyouji\n");
> modori = hikisuu1 * hikisuu2;
> printf("modori = %d\n", modori);

使い方というか、元のコードは関数の作成例だと思いますが、関数を利用しないで使ってる変数は利用するとして同じような流れだと以下のような感じでしょうか。

int main()
{
int modori;
int hikisuu1;
int hikisuu2;

hikisuu1=2;
hikisuu2=3;
printf("kansuu de hyouji\n");
modori = hikisuu1 * hikisuu2;
printf("modori = %d\n", modori);
return 0;
}
    • good
    • 0
この回答へのお礼

毎度ご回答まことにありがとうございます。
 同じ結果が得られました。
すばらしい。
kansuu de hyouji
modori = 6
 
 とても分かりやすいです。
 
  最初のきむずい!プログラムと比較した場合、同じ結果ですが!
 あえて!きむずいプログラムを使用した目的は!
  複雑化していくプログラムの流れの中で、必要だからなのでしょう。
 
 ご紹介していただいた、プログラムと比較しながら勉強したいと思います。
 
 その他のスレッドのご回答いろいろありがとうございます。
今後とももよろしくお願いたいします。
 

お礼日時:2014/11/11 05:48
    • good
    • 0

「コンパイル」と「実行」は区別してください.

    • good
    • 0

>  この場合なぜ!


> kansuu de hyouji
>  が最初になるのでしょうか!?

modori = kansuu(2, 3);
でkansuuを呼び出していますからその中にある
printf("kansuu de hyouji\n");
が実行されて
knnsuuから抜けた後に
printf("modori = %d\n", modori);
が実行されますから

kansuu de hyouji
modori = 6
の順に表示されます。

kansuu(2, 3)のところにint kansuu(int hikisuu1, int hikisuu2)が展開されると考えてください。

printf("kansuu de hyouji\n");
modori = hikisuu1 * hikisuu2;
printf("modori = %d\n", modori);

と書かれているのと同じことになります。

ステップ実行してみるとどの順番で実行されていくか目視できますよ。

この回答への補足

ご回答ありがとうございます。
 以下の使い方がいまいちわかりません?
printf("kansuu de hyouji\n");
modori = hikisuu1 * hikisuu2;
printf("modori = %d\n", modori);
  
 よろしくお願いします。

補足日時:2014/11/08 17:18
    • good
    • 0

では、素人考えなど止めて、正しいプログラミングを勉強しましょう。



分岐、ループ、呼び出し、ジャンプ等、実行順序が「上から順番」でないものが沢山あります。


それと、「コンパイル」は実行できるようにするための準備です。
コンパイルの順序と実行の順序は関係ありません。
    • good
    • 0

それは、このような順番で書かれているからとしか言いようがありません




modori = kansuu(2, 3);
printf("modori = %d\n", modori);




コンパイルの順番とプログラムの実行順は関係ありません。

この質問とは関係ないことですが、Cコンパイラは原則、ワンパスコンパイラですから上から下へ一回のみコンパイルされます。
    • good
    • 0

プログラムの基本がわかってないですね。



例えば、スケジュールで
 9:00から5階で会議。
10:00から3階で仕事。
11:00から7階で撮影。

とかあったら
「ビルは5階と7階の間に3階はない」といいますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 基本情報技術者試験の言語ってどうやって選ぶ?

    SEを目指す場合、基本情報技術者試験を経て実務に就いた人も多いのではないでしょうか。教えて!gooにはSEを目指している質問者からこんな質問が寄せられました。 「基本情報技術者試験のC言語とJavaの違い?」 将...

  • 【100均グッズで!】カラフルクレヨンキャンドルを作ってみた

    市販されているキャンドルには、自分好みの色合いや、好きな形状のものなど、なかなかピッタリのものが見つからないという人も多いことだろう。自分で手作りしてみるのもありかもしれないと、そのやり方を「教えて!...

  • 不倫相手に5年ぶりに連絡したらフラれた

    常に世間の大きな関心ごととなる著名人の不貞問題。一般家庭の不倫に対してもそれは同じようで、「教えて!goo」によせられた「人は5年も経つと心は変わってしまうのでしょうか?」という質問には多くの回答が書き込...

  • 【長谷川豊】『名無しです』さんから来たメッセージ

    先日、私が別でやっている連載に対して、極めて分かりやすく、的を射たコメントが来たので是非「教えて!goo」の連載でもシェアしたいと思います。 私は沖縄で起きた痛ましい女性の暴行死事件の記事に関連して、あ...

  • おしゃれは世代を越えて。多様化する死装束の中にはドレスも!?

    日本では亡くなった人間が、現世に禍根を残していると「うらめしや~」というように幽霊になって出てくると言われている。幽霊について伝統的なイメージといえば、頭に巻いた三角の布に、真っ白な死装束、そして足が...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ