#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
が最初になるのでしょうか!?
よろしくお願いします。
No.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;
}
毎度ご回答まことにありがとうございます。
同じ結果が得られました。
すばらしい。
kansuu de hyouji
modori = 6
とても分かりやすいです。
最初のきむずい!プログラムと比較した場合、同じ結果ですが!
あえて!きむずいプログラムを使用した目的は!
複雑化していくプログラムの流れの中で、必要だからなのでしょう。
ご紹介していただいた、プログラムと比較しながら勉強したいと思います。
その他のスレッドのご回答いろいろありがとうございます。
今後とももよろしくお願いたいします。
No.4
- 回答日時:
> この場合なぜ!
> 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);
よろしくお願いします。
No.3
- 回答日時:
では、素人考えなど止めて、正しいプログラミングを勉強しましょう。
分岐、ループ、呼び出し、ジャンプ等、実行順序が「上から順番」でないものが沢山あります。
それと、「コンパイル」は実行できるようにするための準備です。
コンパイルの順序と実行の順序は関係ありません。
No.2
- 回答日時:
それは、このような順番で書かれているからとしか言いようがありません
modori = kansuu(2, 3);
printf("modori = %d\n", modori);
コンパイルの順番とプログラムの実行順は関係ありません。
この質問とは関係ないことですが、Cコンパイラは原則、ワンパスコンパイラですから上から下へ一回のみコンパイルされます。
No.1
- 回答日時:
プログラムの基本がわかってないですね。
例えば、スケジュールで
9:00から5階で会議。
10:00から3階で仕事。
11:00から7階で撮影。
とかあったら
「ビルは5階と7階の間に3階はない」といいますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
応用情報技術者試験の令和元年...
-
インクリメント演算子のみを用...
-
Windows formアプリで データグ...
-
右ビットシフト
-
Linux Cプログラミングを学ぶた...
-
プログラミングについて。 1つ...
-
ArduinoのジャイロモジュールMP...
-
c言語
-
これなにがちがうんですか??
-
Int('1234') で、strをかんたん...
-
C言語 配列と関数の練習問題
-
質問失礼します。 プログラム言...
-
C言語の関数と配列に関する質問
-
どなたかこのプログラミングを...
-
VisualStudio2022でC言語プログ...
-
C言語をコンパイルするとコンピ...
-
どちのほうがすきですか?
-
Notepad++の関数リスト表示の変...
-
WindowsのCapsLock(キャップス...
-
double型が正常に認識されてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列と関数の練習問題
-
システムエンジニアの適正について
-
[C言語]fputsとfprintfの違い
-
C言語をコンパイルするとコンピ...
-
mallocについて
-
どちのほうがすきですか?
-
ArduinoのジャイロモジュールMP...
-
大量のデータを読み込んで表示...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C言語 列挙型(enum型)変数について
-
こんなことてしますか??
-
C言語の関数と配列に関する質問
-
Linuxでの開発環境構築や設定の...
-
質問失礼します。 プログラム言...
-
MACで動く実行ファイルをWindow...
-
WindowsのCapsLock(キャップス...
-
これなにがちがうんですか??
-
卒業研究でよく分からないとこ...
-
gcc13.2のバグ?
おすすめ情報