以下C言語入門書の説明ですが!
いまいちわかりません?
・関数内で宣言された変数の扱い
関数内で宣言した関数は、その関数内でのみ有効な変数になります。関数が異なれば、同じ変
数名で宣言することができます。例えば、main関数と(?)kansuu関数で、同じ(?)hennsuuという名
前の変数を宣言することができます。
int main()
{
int (A)hensuu = 0;
(B)kansuuu(1);
}
int (C)kansuu(int hikusuu)
{
int (D)hensuu = 10;
}
列のmain関数で宣言されている(?)hensuuと、さ(?)kansuu関数で宣言されている(?)hensuuは
同じ名前ですが、独立した異なるものです。(?)kansuu関数が実行されているときに、(?)hensuuの値
を変更しても、main関数で宣言されている(?)hensuuの値は変更されません。
また、(?)kansuu関数を実行している間だけ、(?)kansuu関数で宣言されている(?)hensuuが有効です。
(?)kansuu関数から呼び出し元でるmain関数に戻った際は、(?) kansuu関数で宣言した
(?)hensuuはもう有効ではなくな、値を参照することもなくなります。
以上の説目で、
(A)hensuu、 (B)kansuuu、(C)kansuu、(D)hensuu
(アルファベット)を分かりやすいよう追加しました。
説明の
(?)にプログラムの(A)~(D)をつけたらどうなるか知りたいです。
(何となくわかるですが?)
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
関数内で宣言した関数は、その関数内でのみ有効な変数になります。
関数が異なれば、同じ変数名で宣言することができます。例えば、main関数と(C)kansuu関数で、同じ(A, D)hennsuuという名
前の変数を宣言することができます。
int main()
{
int (A)hensuu = 0;
(B)kansuuu(1);
}
int (C)kansuu(int hikusuu)
{
int (D)hensuu = 10;
}
列のmain関数で宣言されている(A)hensuuと、さ(C)kansuu関数で宣言されている(D)hensuuは
同じ名前ですが、独立した異なるものです。(C)kansuu関数が実行されているときに、(D)hensuuの値
を変更しても、main関数で宣言されている(A)hensuuの値は変更されません。
また、(C)kansuu関数を実行している間だけ、(C)kansuu関数で宣言されている(D)hensuuが有効です。
(C)kansuu関数から呼び出し元でるmain関数に戻った際は、(C) kansuu関数で宣言した
(D)hensuuはもう有効ではなくな、値を参照することもなくなります。
ご回答まことにありがとうございました。
助かります。
お返事が遅れまして申し訳ございませんでした。
以上の、ご回答を基にして
再度よく読み直し、プログラムの流れを勉強したいと思います。
今後ともよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2重定義って??
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
ハンドルされていない例外が発...
-
typedef enumの使い方を教えて...
-
visualstudio C# テキストボッ...
-
C言語 宣言した変数になにも代...
-
プログラムの中で別のmainを呼...
-
構造体を引数とする、クラス間...
-
enumについて
-
Arduinoのプログラムについて
-
C++/CLIでネイティブの構造体を...
-
変数の型を定義しなかった場合...
-
C++の(左辺値)参照を参照渡し
-
int void (main)の意味・・・
-
C++のfor文について
-
gccのエラー "initialization d...
-
LNK2019: 未解決の外部シンボル...
-
C言語での方向キー入力判定
-
関数の実体定義にヘッダファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
visualstudio C# テキストボッ...
-
2重定義って??
-
long型の定数の末尾にLを付ける...
-
C++のfor文について
-
typedef enumの使い方を教えて...
-
関数の実体定義にヘッダファイ...
-
変数の型を定義しなかった場合...
-
ハンドルされていない例外が発...
-
C++でboolにintの値を代入する...
-
main.c:7:43: warning: implici...
-
プログラムの中で別のmainを呼...
-
【#define】 defineで定義した...
-
void func( void )について
-
構造体の要素すべてに対する四...
-
構造体の宣言でエラーが出ます。
-
C++の(左辺値)参照を参照渡し
-
main()とint main(void)の違い
-
intとINTの違いは?
-
DLLでLIBファイルが作成されない
おすすめ情報