Docs/ポインタの話/func1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*関数を使うときにポインタが必要になるのはなんで? プログ...
#contents
以下のプログラムを実行したときには計算機の中でどんな処理...
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
8 hoge(a, b);
9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
**step1 7行目 [#n8981c20]
#pre{{
5 int a, b;
6
--> 7 a = 7; b = 3;
8 hoge(a, b);
9 printf("%d %d\n", a, b);
}}
-変数aのためにメモリ上のある場所(例えば0x1000番地)が用...
-変数bの値も別の場所(0x1004番地)に格納される
&ref(pic01.png);
**step2 8行目 [#zf740095]
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
--> 8 hoge(a, b);
9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-main()は,&color(Red){変数aとbの値};,すなわち0x1000番地...
&ref(pic02.png);
**step3 12行目 [#uff6b7d7]
#pre{{
--> 12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-関数hoge()は,main()から渡された値をx,yという変数として...
-変数x,yのために新しい場所(例えば0x1230,0x1234番地)が用...
&ref(pic03.png);
**step4 14行目 [#ub239fb8]
#pre{{
12 void hoge(int x, int y)
13 {
--> 14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-変数xの値と変数yの値を足したものを変数yに代入する
&ref(pic04.png);
**step5 15行目 [#wdddeb78]
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
8 hoge(a, b);
9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
--> 15 printf("%d %d\n", x, y);
16 }
}}
-変数xとyの値が出力される
&ref(pic05.png);
**step6 9行目 [#r05ee21b]
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
8 hoge(a, b);
--> 9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-main()の世界に戻ってくる
-このとき,変数a,bの値,すなわち &color(Red){0x1000,0x100...
-変数aとbの値が出力される
&ref(pic05.png);
**step7 実行結果 [#tccc5524]
以上の実行の結果は
#pre{{
7 10 ← 15行目のprintf()の出力
7 3 ← 9行目のprintf()の出力
}}
となる.
この場合,&color(Red){関数hoge()が受け取った値をいくらい...
[[もどる>Docs/ポインタの話#func1]]
終了行:
*関数を使うときにポインタが必要になるのはなんで? プログ...
#contents
以下のプログラムを実行したときには計算機の中でどんな処理...
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
8 hoge(a, b);
9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
**step1 7行目 [#n8981c20]
#pre{{
5 int a, b;
6
--> 7 a = 7; b = 3;
8 hoge(a, b);
9 printf("%d %d\n", a, b);
}}
-変数aのためにメモリ上のある場所(例えば0x1000番地)が用...
-変数bの値も別の場所(0x1004番地)に格納される
&ref(pic01.png);
**step2 8行目 [#zf740095]
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
--> 8 hoge(a, b);
9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-main()は,&color(Red){変数aとbの値};,すなわち0x1000番地...
&ref(pic02.png);
**step3 12行目 [#uff6b7d7]
#pre{{
--> 12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-関数hoge()は,main()から渡された値をx,yという変数として...
-変数x,yのために新しい場所(例えば0x1230,0x1234番地)が用...
&ref(pic03.png);
**step4 14行目 [#ub239fb8]
#pre{{
12 void hoge(int x, int y)
13 {
--> 14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-変数xの値と変数yの値を足したものを変数yに代入する
&ref(pic04.png);
**step5 15行目 [#wdddeb78]
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
8 hoge(a, b);
9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
--> 15 printf("%d %d\n", x, y);
16 }
}}
-変数xとyの値が出力される
&ref(pic05.png);
**step6 9行目 [#r05ee21b]
#pre{{
1 void hoge(int x, int y);
2
3 main()
4 {
5 int a, b;
6
7 a = 7; b = 3;
8 hoge(a, b);
--> 9 printf("%d %d\n", a, b);
10 }
11
12 void hoge(int x, int y)
13 {
14 y = x + y;
15 printf("%d %d\n", x, y);
16 }
}}
-main()の世界に戻ってくる
-このとき,変数a,bの値,すなわち &color(Red){0x1000,0x100...
-変数aとbの値が出力される
&ref(pic05.png);
**step7 実行結果 [#tccc5524]
以上の実行の結果は
#pre{{
7 10 ← 15行目のprintf()の出力
7 3 ← 9行目のprintf()の出力
}}
となる.
この場合,&color(Red){関数hoge()が受け取った値をいくらい...
[[もどる>Docs/ポインタの話#func1]]
ページ名: