ポインタを解説しないといけないのですが・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
J

ポインタを解説しないといけないのですが・・・

#1

投稿記事 by J » 16年前

お久しぶり&あけましておめでとうございます
明日、学校でC言語におけるポインタについて30分ほど解説しないといけないのですが
自動変数の有効範囲と自作関数から入って、ポインタの必要性と利便性について語るという手順でよろしいでしょうかね。
私はこれがベストかなと思っているのですが。あんまり自信ないです><
どなたかアドバイスをくださると嬉しいです。お願いします。

組木紙織

Re:ポインタを解説しないといけないのですが・・・

#2

投稿記事 by 組木紙織 » 16年前

C言語の言語仕様のうちポインタに関する部分を解説するのか、ポインタというものの利点を解説するのかで
解説内容は変わってきます。

J

Re:ポインタを解説しないといけないのですが・・・

#3

投稿記事 by J » 16年前

そうでしたね
内容は適当にこちらが決めていいのですが。。
どれが一番やりやすそうですかね?

組木紙織

Re:ポインタを解説しないといけないのですが・・・

#4

投稿記事 by 組木紙織 » 16年前

人によって知識の質と量が違う&聞き手のレベルも分からないので、一概には言えないです。
どれでもお好きなのをすればいいと思います。

私だったらポインタの落とし穴を話すかな。

たかぎ

Re:ポインタを解説しないといけないのですが・・・

#5

投稿記事 by たかぎ » 16年前

ポインタの使い方は、突き詰めていくと...

1. オブジェクトまたは関数の参照
2. 配列要素へのアクセス
3. 動的オブジェクトの保持

ではないかと思います。
これがそのまま利点にもなっています。

2.の配列要素のアクセスについては、ポインタを使わなくても a のようにすればよいと考えるかもしれませんが、a は *(a + i) のシンタックスシュガーですので、やはりポインタが絡みます。

Dixq (管理人)

Re:ポインタを解説しないといけないのですが・・・

#6

投稿記事 by Dixq (管理人) » 16年前

何故そのポインタの説明の必要があるかで変わってくるんじゃないでしょうか?
学生に教える為に必要なのか、卒論発表や学会発表などで必要なのか・・。

J

Re:ポインタを解説しないといけないのですが・・・

#7

投稿記事 by J » 16年前

いえいえ(笑
そんなに重要なものでも無いですよ管理人さん
先生の思いつきの授業内の発表ですから
まあ、「学生に教える為に必要」ですね
だからそんなに深いことは必要ないです
「ポインタ」としか題は決めていないんで、どうしようかと思いまして。
ポインタの概要をちょっとでも理解してくれればいいんですけどね

Dixq (管理人)

Re:ポインタを解説しないといけないのですが・・・

#8

投稿記事 by Dixq (管理人) » 16年前

それなら一連のポインタの説明に加え、
利点の説明などには
自分がプログラム書いてて「あ、こういうときポインタって便利だな」と思ったこと並べるような感じでいいんじゃないでしょうか?

私が一番ポインタ便利だなって思ったのは、初めて関数ポインタ使ったときでした。
例えば弾幕シューティングで言えば

弾幕001();
弾幕002();
弾幕003();
....
弾幕150();

とか似たような関数が何百ってあるんですよね。
それをイチイチ個別に呼び出していたのではめんどくさいってことで、
関数のアドレスを配列に入れておいて、番号で呼べるようにしました。
こうすることで、すごく簡単に関数が呼べるようになりました。

自分の経験を混ぜて説明すれば説得力ある説明が出来ると思います。

後、「ポインタ 利点」とかで検索してもいい情報が得られるかもしれません。

たいちう

Re:ポインタを解説しないといけないのですが・・・

#9

投稿記事 by たいちう » 16年前

関数の引数としてオブジェクトのコピーを渡さないですむという利点の説明はどうですか?
それだけだと多分30分も持たないので、後はリスト構造の説明とか。

やそ

Re:ポインタを解説しないといけないのですが・・・

#10

投稿記事 by やそ » 16年前

ポインタの利点・・・
殆どは皆さんが語っている点で間違いないと思います。
わたしも関数ポインタにはお世話になりました^^

で良く初心者向けの本に載っているポインタの利点として解説されているのは、
関数だと戻り値はひとつしか返せないけど、ポインタを使えば複数の値を返すことが出来る。
ってところを最初に習った気がします。

閉鎖

“C言語何でも質問掲示板” へ戻る