お久しぶり&あけましておめでとうございます
明日、学校でC言語におけるポインタについて30分ほど解説しないといけないのですが
自動変数の有効範囲と自作関数から入って、ポインタの必要性と利便性について語るという手順でよろしいでしょうかね。
私はこれがベストかなと思っているのですが。あんまり自信ないです><
どなたかアドバイスをくださると嬉しいです。お願いします。
ポインタを解説しないといけないのですが・・・
Re:ポインタを解説しないといけないのですが・・・
C言語の言語仕様のうちポインタに関する部分を解説するのか、ポインタというものの利点を解説するのかで
解説内容は変わってきます。
解説内容は変わってきます。
Re:ポインタを解説しないといけないのですが・・・
人によって知識の質と量が違う&聞き手のレベルも分からないので、一概には言えないです。
どれでもお好きなのをすればいいと思います。
私だったらポインタの落とし穴を話すかな。
どれでもお好きなのをすればいいと思います。
私だったらポインタの落とし穴を話すかな。
Re:ポインタを解説しないといけないのですが・・・
ポインタの使い方は、突き詰めていくと...
1. オブジェクトまたは関数の参照
2. 配列要素へのアクセス
3. 動的オブジェクトの保持
ではないかと思います。
これがそのまま利点にもなっています。
2.の配列要素のアクセスについては、ポインタを使わなくても a のようにすればよいと考えるかもしれませんが、a は *(a + i) のシンタックスシュガーですので、やはりポインタが絡みます。
1. オブジェクトまたは関数の参照
2. 配列要素へのアクセス
3. 動的オブジェクトの保持
ではないかと思います。
これがそのまま利点にもなっています。
2.の配列要素のアクセスについては、ポインタを使わなくても a のようにすればよいと考えるかもしれませんが、a は *(a + i) のシンタックスシュガーですので、やはりポインタが絡みます。
Re:ポインタを解説しないといけないのですが・・・
何故そのポインタの説明の必要があるかで変わってくるんじゃないでしょうか?
学生に教える為に必要なのか、卒論発表や学会発表などで必要なのか・・。
学生に教える為に必要なのか、卒論発表や学会発表などで必要なのか・・。
Re:ポインタを解説しないといけないのですが・・・
いえいえ(笑
そんなに重要なものでも無いですよ管理人さん
先生の思いつきの授業内の発表ですから
まあ、「学生に教える為に必要」ですね
だからそんなに深いことは必要ないです
「ポインタ」としか題は決めていないんで、どうしようかと思いまして。
ポインタの概要をちょっとでも理解してくれればいいんですけどね
そんなに重要なものでも無いですよ管理人さん
先生の思いつきの授業内の発表ですから
まあ、「学生に教える為に必要」ですね
だからそんなに深いことは必要ないです
「ポインタ」としか題は決めていないんで、どうしようかと思いまして。
ポインタの概要をちょっとでも理解してくれればいいんですけどね
Re:ポインタを解説しないといけないのですが・・・
それなら一連のポインタの説明に加え、
利点の説明などには
自分がプログラム書いてて「あ、こういうときポインタって便利だな」と思ったこと並べるような感じでいいんじゃないでしょうか?
私が一番ポインタ便利だなって思ったのは、初めて関数ポインタ使ったときでした。
例えば弾幕シューティングで言えば
弾幕001();
弾幕002();
弾幕003();
....
弾幕150();
とか似たような関数が何百ってあるんですよね。
それをイチイチ個別に呼び出していたのではめんどくさいってことで、
関数のアドレスを配列に入れておいて、番号で呼べるようにしました。
こうすることで、すごく簡単に関数が呼べるようになりました。
自分の経験を混ぜて説明すれば説得力ある説明が出来ると思います。
後、「ポインタ 利点」とかで検索してもいい情報が得られるかもしれません。
利点の説明などには
自分がプログラム書いてて「あ、こういうときポインタって便利だな」と思ったこと並べるような感じでいいんじゃないでしょうか?
私が一番ポインタ便利だなって思ったのは、初めて関数ポインタ使ったときでした。
例えば弾幕シューティングで言えば
弾幕001();
弾幕002();
弾幕003();
....
弾幕150();
とか似たような関数が何百ってあるんですよね。
それをイチイチ個別に呼び出していたのではめんどくさいってことで、
関数のアドレスを配列に入れておいて、番号で呼べるようにしました。
こうすることで、すごく簡単に関数が呼べるようになりました。
自分の経験を混ぜて説明すれば説得力ある説明が出来ると思います。
後、「ポインタ 利点」とかで検索してもいい情報が得られるかもしれません。
Re:ポインタを解説しないといけないのですが・・・
関数の引数としてオブジェクトのコピーを渡さないですむという利点の説明はどうですか?
それだけだと多分30分も持たないので、後はリスト構造の説明とか。
それだけだと多分30分も持たないので、後はリスト構造の説明とか。
Re:ポインタを解説しないといけないのですが・・・
ポインタの利点・・・
殆どは皆さんが語っている点で間違いないと思います。
わたしも関数ポインタにはお世話になりました^^
で良く初心者向けの本に載っているポインタの利点として解説されているのは、
関数だと戻り値はひとつしか返せないけど、ポインタを使えば複数の値を返すことが出来る。
ってところを最初に習った気がします。
殆どは皆さんが語っている点で間違いないと思います。
わたしも関数ポインタにはお世話になりました^^
で良く初心者向けの本に載っているポインタの利点として解説されているのは、
関数だと戻り値はひとつしか返せないけど、ポインタを使えば複数の値を返すことが出来る。
ってところを最初に習った気がします。