2025年11月19日 第9回
今回の講義ではポインタについて学んだ.
以前の講義でポインタについて知ったときは使う意義がよくわからなかったが,
講義と演習を通して,
2つ以上の戻り値を使いたいときなどに有用であることがわかった.
ポインタという概念自体は簡単だが,
適当に扱うとエラーを起こしてしまうこともあったため,
うまく活用したい.
うまくできたようですね.良かったと思います.
今日はポインタを演習した.
問題数が多かったがそこまで難しくなかった.
だが,
期末試験があるので復習は忘れずにしたいと思った.
そうですね.復習はしておいてください.
今日の課題では変数の手前につける&,
ポインタ変数の前につける*など記号が増え,
両方とも多く使用した為入力ミスが頻発しかなり手間取ってしまった.
参照渡しや値渡し等でのポインタを使う感覚に慣れていないという点もミスの原因の一つだと感じたからもう少し練習して身につけたい.
&,* などはどのように使われるのかを確認しておいてください.
今回も集中して取り組めてよかった.
分からなかったときに,
チャッピーでコードを調べる際に,
授業では習っていないようなコードが散見される.
それらのチャッピー特有の癖などはどのようなものなのか知りたいと思うようになった.
また,
AIが必要なコードをかけるならば,
いったいプログラミングで人間がどのように活躍するのかを詳しく知りたいと思った.
なるほど.良いコメントですね.特に情報工学科のみなさんは考えないとまずいですね.
ただ,安易にチャッピーを使わないようにしたほうが良いと思います.
今回はポインタについて行った.
最初はこのアドレスを使う意味がわからなかったが,
仮引数,
実引数の概念を理解するととても大事であることに気づいた.
これからはこれを利用して,
関数を使ってすっきりしたプログラムをしたいと思いました.
うまく使ってもらうと良いでしょう.
計算途中で間接参照演算子をつけ忘れてエラーが出ることがかなり多かった.
どんな構成でコードを書くのか,
より明確に考えないと今後コードを書いている途中に混乱してしまうと感じたので,
今日の反省を忘れずに今後も取り組みたい.
何をやろうとしているのかを考えると良いかもしれません.
今回は*pa,&paなど,
ポインタが多変数の扱いがややこしくて苦戦してしまったが,
最終的にすべての課題を解決することが出来たので良かった.
期末試験に向けて復習したい.
復習はしてください.また,毎回の演習課題も対応してください.
理由を文章で説明する問題が,
どう表現するか悩みどころだった.
こちらもいきなり電子的に書かずに,
まずはノートなどに色々と書いてみると良いですね.
なんか今回,
考察系が多く自分で作る感じがなくてそこまで成長できなかった気がします.
わかった気になっている人には辛い問題ですね.
前回同様そこまで悩むことなく解くことができた.
変数が多くなってくると自分がどの文字でどれを定義したのかわからなくなってくるので気を付けたい.
コードに限らず,文章を書くときもですが,
記録をしておけば良いと思いますよ.
ポインタ変数を用いることで, 関数がより「どこに何を代入するのか」がわかりやすくなった気がする.
素晴らしい.うまくいっていますね.
今回はポインタについて学習をした.
間接参照演算子を用いて値を表示したり,
アドレスを変えることで他の変数の値を変えることができたりと,
応用の幅が広い分野だと感じた.
プログラムが複雑になるほど,
どのポインタ変数がどの値のアドレス値を持っていてどの値を示すのかを理解することが大変になると思った.
コメント文などをうまく使うなどして,
把握するようにしてみるのも一つだと思います.
なぜか今日の内容がさっぱりわかりませんでした...........復讐頑張ります.
復讐ですか...
今日もよくできた.
乗算と間接参照になぜ同じ記号が割り当てられているのか気になった.
構文解析が可能なのはわかるが,
別の記号のほうが可読性は高いと思う.
調べてみるとBCPLでは間接参照に!が使われていたようだ.
ただ,
*に限らず,
AND演算子とアドレス演算子に&が割り当てられているのを見ると,
ASCII文字のみで言語を構成するためには,
一つの記号に多義性を持たせる必要があったのかもしれない.
とはいえ,
$とか@とか,
ほかに未使用のASCII文字がないわけでもない.
また,
*と間接参照のイメージが合致するわけでもない.
設計思想,
慣習,
UNIX的な思想辺りに起因するのだろうか.
確かに混乱を招きますね. 歴史的なところが多いと思います.
今回の演習で,
ポインタは難解な記号ではなく,
単なるデータの住所のようなものだと理解できたと思います.
その住所(アドレス)さえわかれば,
関数の外にある変数でも自由に書き換えて,
結果を受け取れる便利さを実感できました.
よろしいと思います.この調子でお願いします.
今回は授業時間内に課題を終えることができてよかった.
今日はそこそこ楽しめた.
また,
期末に向けて頑張らなくてはと焦っていたが,
もう少し気楽にやろうと思いなおした.
Unityや競技プログラミングなど,
プログラミングを通して楽しめるものはたくさんあるため,
まずはそのようなことから慣れていき日常にプログラミングがあるようにしたい.
まずは色々とやってみるのが良いでしょう.
自分でポインタ変数を置いたり,
コード内で置いた文字を*や&でもってくるのがはじめはどうしたら良いか迷ったが,
理解すると案外簡単で便利なことがわかった
理解できたようでとても良かったと思います.
ポインタを使っていて途中,
コアダンプに悩まされた.
原因としては,
ポインタを宣言したもののメモリのどこを指すのか指定していなかったからだと分かった.
修正して動きましたか?
今までの演習でprintf(%d,&num);などの文法ミスをした際に何故とんでもなく大きい値が出力されていたかようやく理解できてよかったです.
体験してみると理解が進みますね.
今日はポインタで少々慣れないところがありましたが, やはり予習のおかげでクリアすることができました. 特にポインタは躓きやすいと聞いていたので, Youtube動画や図書館で本を借りるなどしてどうにかして納得した感じです. まだまだ消化不良な感じは否めませんが, 一旦は理解することができてよかったです.
講義動画じゃわからないですかね...
まぁ,理解してくれたら方法はどれでもよいのですが,
それよりも大学の講義はある意味サブスクなので,
その辺りうまく活用するのが良いと思います.
scanfの&の意味が分かってすっきりした.
そろそろ今までの内容を復習しておきたい.
すっきりできて良かったと思います.
本日はポインタと関数を学んだ.
アドレス地の格納を覚えることで便利にプログラムをかけると感じたので復習をして理解を深めていきたいです.
まずは理解を深めてもらうのが良いでしょう.
今回はポインタについての演習を行った.
新しい知識がどんどん増えていく代わりに,
序盤に行っていた内容を忘れているので復習もしっかり行っていきたい.
課題をやればすぐに思い出すでしょう.
とても面白い内容だった.
よろしいと思います.
今回の話は少しわかりにくかったです.
*が付くとアドレスではなく変数を表すことや変数の型を一致させることに注意して頑張りました.
しっかり復習して使いこなせるようにしたいです.
確かに混乱を招きますね.
本日の内容は前回よりも難しくなっていたと思った.
仮引数と本引数の扱いの違いが最後まで難しくて,
結果として出てこないことが多くあったので,
今後のためにしっかり復習したい.
不明な場合は質問してもらうと良いでしょう.
前回まで,
関数で戻り値を複数にしたい場合はどうするのか気になっていたので,
アドレスという概念を理解して納得することができた.
次回も頑張りたい.
これ以外の方法は構造体で話します.
今回はポインタについて学んだ.
本来関数では1つの値しか返すことができないが,
ポインタを使い,
アドレスに直接値を書き込むことで複数の値を返すことができると分かった.
少々複雑でわからなくなることもあったが,
慣れればとても便利なツールになると感じた.
C言語には様々なツールが用意されているので,
どれが最適か考える練習もしていきたい.
色々とコードを書いてみるとよいですね.
アドレスについて深く考えたことがなかったため,
課題4でアドレス値の差がそれぞれの型のバイト数と一致するということを知った時に感動した.
ポインタについてまだ理解できていない部分が多くあるため,
しっかり復習したい.
感動してくれて良かったとおもいます.
課題を通して実際の物理的なメモリの確保や保存が垣間見えた.
ところで,
プログラムで変数を使うとき,
もちろんアドレスを参照してメモリの値を読み取っているのだと思うが,
「この変数の情報がこのアドレスに保存されている」という情報はどこに保存されているのか気になった.
これは実行時に記録される内部的な情報に保存されています.
これらを実際にみることもできますが,
(コマンドは自分でしらべてください)
興味があれば見てみると良いと思います.
円滑に取り組めた.
よろしいと思います.
今回の講義ではポインタについて学びました.
講義動画を見ている段階では,
なぜわざわざポインタを使うのだろうと疑問に思っていたのですが,
演習の時に実際にいろいろ使ってみるとなぜ必要なのか理解できました.
特に関数を自分で定義するときにはポインタを理解していると戻り値を用いなくても簡単にプログラムを組めるんだと実感しました.
理解してくれて良かったと思います.
課題のおかげでプログラムを書くときに気にするべきところがわかりやすい.
よろしいと思います.
今回の課題は,
実際に動作して確かめる問題が多く,
比較的簡単だった.
エラーの原因を探すのにも最近慣れてきて,
作業スピードも上がってきた.
しかし,
最近はエラーが表示されない動作不良が多くなり,
時間が消えていくので大変である.
エラーが表示されない動作不良?
returnでは一つの関数で一つの値しか返せないため,
2つ以上の値を関数で返したい時にはポインタを関数の引数に使うと便利という認識で合っていますか?
合っています.
アドレスとかは身近に感じれる例が多くどういうものかすぐに理解できました.
理解してくれましたか.良かったです.
ここ数回の課題は,
以前と比べて難易度は低いが,
内容についての理解が深まるものが多く面白い.
前までは何も考えずscanf("%d"&a);などと"&"がつく字を書いていたが,
この演習を通して&がアドレスを示していたことが実感できた.
理解できましたね.
はじめアドレスの意味や用途が全く分からなかったが,
演習を通して意味と使い方を理解できた.
教材のおかげで課題自体はスムーズに進んだ.
素晴らしい.この調子でお願いします.
本日はポインタについて扱いました.
宣言や値の代入を*aのように行うのは,
*aで通常の変数のように捉える,
ということで理解できています.
が,
関数の引数をアドレスとするとき,
仮引数の定義を通常のポインタと同じように定義するのは,
仕方がないようにも思えますが,
対応関係がうまく取れずやや納得し難かったです.
ですが恐らく,
全て慣れが解決してくれると思います.
どの部分のことを言っているのかうまく理解できていないので,
直接説明してくれると良いと思います.
ポインタやアドレスの仕様が途中からこんがらがってしまいました.
一度紙などにどのような構造になっているかを書くこともとても大事だと思いました.
すばらしい.これは大切ですね.
今回はポインタについて学習した.ポインタを使用することにより,
呼出元の変数の値を関数内で変更させることができる.これにより,
関数のスタイリッシュさを向上させられることが分かった.
次回以降,
配列との混合となるので複雑なコードにも対応できるようによくポインタを復習しようと思う.
スタイリッシュですか.上手いこと言いますね.
今回の演習では,
ポインタについて学んだ.
ポインタを使うことで関数の戻り値を複数作れたり,
参照渡しにより引数を変更できたりといくつか利点があることがわかった.
ポインタを使う時に*や&をつけなければならない所と必要ない箇所があり混同しないように注意が必要だと思った.
確かに混乱のものですね.落ち着いて考えてください.
今回は,
ポインタの仕組みについて理解できた.
最初は,
アドレスや間接参照などの仕組みを理解するのに時間がかかったが,
課題を通じて理解する事が出来た.
やりごたえがあった.
理解ができたようですね.よろしいと思います.
ポインタを用いて変数のアドレスを取り扱う方法を学んだ.
また,
ポインタを関数に渡すことで返り値を使用することなく関数と情報をやり取りする方法を学んだ.
できましたか?
今回の授業では,
ポインタを用いることで,
関数に複数の戻り値を持たせたい場合にどのようにすればよいかを理解することができた.
また,
改めてメモリに関する知識を学ぶことができた.
理解できましたか.
今回の課題では,
前回・前々回よりもコメントでの回答が多く,
比較的早い時間で終わらすことができてよかった.
うまくできたようですね.
本日はアドレスとポインタについて学んだ.
うまく動かないときにアドレス演算子と間接参照演算子を誤用していたことが多々あったのでそれぞれの機能を意識するようにしたい.
そうですね.まずは課題を通じて理解してくれたら良いと思います.
グローバル変数やローカル変数を利用しなくても,
ポインタ変数を用いれば,
関数間で同じ変数が使えるため,
とても便利だと感じた.
まずは,コードを読めるようになってもらえば良いと思います.
ポインタはC言語を学ぶ上で躓きやすいところだというのはよく聞くので,
家に帰ってまた復習しておきたい.
そうですね.復習してください.
ポインターは上手に使えば便利な機能だが,
どの変数が何を指しているかをきちんと把握していないと,
何が何だか分からなくなってしまうリスクがあるように感じた.
Cよりも新しい言語では,
ポインターの機能に制限を設けていることが多いことを踏まえると,
変数名や不用意な代入をしないなどのマイルールを設けることが重要だと感じた.
ポインタに限らず,整合性をとるようにしたほうが良いと思います.
今回の演習では,
ポインタ変数とアドレスについてどのように使えるのかについて知ることができた.
ポインタ変数をどこで使用するのかがあまり理解できなかったので,
時間がかかてしまった.
でも,できましたかね.
アドレス・ポインタはややこしく手こずりました.だが,今回学んだおかげで,仮引数や実引数といった部分も理解することができたのが良かったと思います.直感的に理解しづらい部分は焦らずに腰を据えて覚えていきたいです.ところで,この授業では出席コードは知らされていないと思うのですが,コンピュータサイエンス序論のときの癖で,日付を逆にしたものを入れた結果出席登録ができてしまいました.classを見直してみると今までの授業で2回だけ出席した生徒が爆誕したのですが,気にしなくて大丈夫ですかね.
他の欄がバツマークになっていたのが気になります.
出席は現場でとっています.
今回の演習ではポインタとアドレスについて扱った.
聞くところによると,
ポインタやアドレスというのはC言語特有の概念らしく,
今回の課題でもその構造や仕組みを理解・把握するのに少し手間取った.
ただ,
使いこなせればかなり有用なものであると思うので,
しっかりと使いこなせるようにしたい.
そうですね.まずは課題を通じて理解してください.
ポインタを用いることにより,
変数を動かさずに計算ができた.
よろしいと思います.
今回の演習を通して,
ポインタの扱い方やアドレスの重要性について理解が深まった.
また,
ポインタを忘れずに初期化しておくことが重要と分かった.
ポインタに限らず変数は初期化したほうが良いでしょう.
情報工学出身でなくても扱いやすいとされるpythonは,
ポインタの概念を理解していなくても扱えるようなものだと調べた.
全変数がポインタとなっており,
言語仕様上ユーザーが明示的にポインタを操作することはないためである.
Pythonが廃れたときや他の言語に対応するときのためにも,
ポインタの学習は重要であると分かった.
重要ですが,みなさんの場合は情報工学科なので,いろいろな言語に触れる機会が多いでしょう,
アドレスを使うことで関数の処理において実引数を変更することができるとわかった.
ポインタ変数を使う時はアドレスとアドレス先の値の2種類が存在するので混乱しないようにする.
*ptr=aとptr=&aでは一見似ているが全然処理が違う事にも注意したい.
まずは落ち着いて考えれば良いでしょう,
今回の講義ではポインタについて学んだ.
今まで戻り値を複数指定したいときどうするんだろうと思っていたので,
今回の内容はすごくためになった.
だが,
その戻り値のように扱うときのポインタの処理をどのようにすればよいのかが少し難しく感じた.
やっていく中でのその処理のイメージが大体できたのでここに書いておこうと思う.
"戻り値のように使いたいもの"を関数の仮引数の部分で*pのように指定し,
呼び出すときの実引数はその戻り値を代入する変数名に&をつけた形にするというものかなと感じた.
理解できていると思います.
void型の関数で足し算などを行うときはアドレスで扱わないと変更した状態を取り出すことができないということを理解できた.
よろしいと思います.
今日の講義も面白かったです.
初めはポインタを考えるメリットが思いつかなかったのですが,
講義動画の中でどんな時に使いやすいのかが説明されていてわかりやすかったです.
授業で扱う内容はどれも大切なものに違いないので,
何の役に立つのかを考えながら講義動画を見ると忘れにくいなと思いました.
わかりやす買ったのであれば良かったです.
ポインタは難しいと様々なところでいわれているのでかなり身構えて授業に臨んだが,
思っていたよりはつまづかなかった.
しかし,
関数で参照を使うときなどに,
&aと*aの使用方法がごちゃごちゃなってしまったので,
もう一度整理する必要があるなと感じた.
身構える必要はないですよね.うまくできたようで良かったです.
関数にポインタを引数として渡すと,
関数内から元の変数を書き換えられるという仕組みがよく分かった.
よろしいと思います.
今回の講義ではアドレスとメモリの関係やポインタ変数について学びました.
pA=&aでポインタにアドレスを入力,
&pAで変数の値を表すことがわかりました.
初めは&と*の役割の違いに戸惑っていましたが理解できました.
理解できたようで素晴らしい.
今回の演習を通じて,
「ポインタ」の概念を,
実際のアドレス値を見ることで具体的に理解することができました.
特に,
変数の「値」と,
その変数がメモリ上のどこにあるかを示す「アドレス」の違いが明確になりました.
最初は * や & の使い分けに戸惑いましたが,
課題を通じて「ロッカーの番号(アドレス)」と「ロッカーの中身(値)」の関係として整理して考えることで,
ポインタを用いた値の操作や参照がスムーズに行えるようになりました.
よろしいと思いますが,講義動画は見てくれましたかね.
アドレス演算子はおそらく理解することができたので良かったです.
関数は非常に便利なものなので,
それを用いて計算したものをmain関数内に入れたいときにアドレス演算子は非常に便利になると感じました.
そうですね.うまく使ってください.
C99以降ではmain関数のreturn文を省略できるらしいが,
それでも明示的に書いておいたほうがよいのか気になった.
書いておいたほうが良いでしょう.古いものへの対応もありますからね.
あと,明示的に,エラーなし終了なのか,エラーで終わったのかなどもかけるので,
かいたほうが良いと思います.
今回の授業ではポインタを使ったプログラミングを通してscanfとの違いや便利さを理解することができた.
最近の授業では使う必要があるものも増えてきて難しくなってきたので,
今まで習ったコードが混同しないように日々しっかりと復習していきたい.
まずは色々とやってみるのが良いと思います.
今回の課題では関数がaだったとしたら,
&aと*aが混ざってしまいがちでよくコードを書いている際に混乱を引き起こしてしまった.
しかし今回はいつもと比べてエラーを引き起こす回数が少なかったと感じ,
少しは成長できている気がして嬉しかった.
関数がa?