2022年11月09日 第9回
前回の内容を今回の演習で忘れてえいることが分かったので
前回の分を復習しなおさないと行けないとおもった
復習は適宜行うようにしてもらえば良いと思います.
説明の時間に様々な例を見ることができて,
スムーズに課題に取り組むことができました.
課題をやっている中で * や & の使い方に混乱してしまったのでしっかり復習しようと思う.
スムーズにできたのであれば良かったです.
今回から課題の難易度が上がったように感じました.
次回以降もがんばりたいとおもいます.
ところで先生はポケモンの新作を買われますか?
ポケモンはやっていないのでわからないです...
ポインタが難しかった.
ポインタを利用することで簡単に処理することができる時は積極的に使って,
慣れていきたい.
そうですね.うまく使ってくれたら良いと思います.
この前YouTubeでc言語に関して見てたときに,
ポインタは難しく,
つまづきやすいと聞きました.
今回の内容ならついていけたので,
ポインタはこれからも続くと思うので頑張りたいです.
ポインタの書き方は何となく分かったですが,
どういう時に使うなど,
応用例があまりよく分かりませんでした.
講義の最後でも触れましたが,関数などを用いるときに, (複数の)引数の値を変更したいなどは便利ですね. Lesson 12で話をしますが,コマンドライン引数などで, 実行時オプションを関数で実装するときなどがそれにあたります.
ポインタやアドレス、実引数など今回は日本語がややこしく理解が大変だった.
わからないところは聞いてください.
今回はアドレスについて学びましたが,
演習をしていてポインタを用いて引数を変更するところがとても重要だと感じました.
そうですね.重要な使い方だと思います.
ポインタについて学習しました.
今までに比べて理解に時間がかかりました.
よく復習します.
そうしてください.
今回の講義は,
ポインタという機能について学びアドレスという言葉も学びました.
ポインタの利用しやすく,
早めに理解することができました.
理解することができたのであれば,とてもよろしいと思います.
今回の内容は少し難しかった.
ポインタなのかそのポインタが指す変数なのか,
こんがらがらず理解するのに時間がかかってしまった.
落ち着いて考えれば大丈夫.
今回ポインタについて学びましたが,
非常に理解に苦しんだ.
しかし演習課題をこなしていくうちに,
ポインタがいかに重要であるかに気づくことができた.
よろしいと思います.
scanfを使う際に&を使う理由が分かってすっきりしました.
すっきりしたのであれば,とても良かった.
ポインタ型の変数は関数をより一般化して使いやすくするのにとても便利だということがわかった.
&と*の認識がごっちゃになりそうな場面が何度かあったので気をつけたい.
落ち着いて考えれば大丈夫でしょう.
アドレスおよびポインタについて学んだ.
宣言した変数の保存場所がわかるようになって,
今までよりも変数が使いやすくなったように感じた.
課題9においてポインタ型変数を宣言するときに
(int *)NULLとついているのにはどういった意味があるのでしょうか?
NULLは (元々) ポインタ型で値がセットされていないことを
明治するのですが,正確にはvoid * 型です.
yとpはポインタですが,int *なのでキャスト演算子を用いています.
今回のポインタを使えば昇順や降順の並べ替えはもっと簡単になるのではないかと思った.
ポインタを用いて配列などをソートするということでしょうかね.
実装はできます.なぜポインタを用いるか,という例でswapという関数が出てきましたが,
まさにこれですね.
ポインタなどの考え方は普段個人で行っているプログラミングの
練習では出会わないものだった.
考え方次第では前回の関数で使ったものをより発展させることができるので
難しい内容だがしっかりと復習していきたい.
そうしてください.
ポインタと関数の引数の所が難しかった.
ポインタとアドレスの認識が上手くいかなかった.
わからないところは質問してください.
今回の講義は前回の関数に続いてアドレスについて学びました.
アドレスを利用したから,
関数をもっと幅広く利用可能になりました.
パソコンがデータをどのように,
そしてどこに保つか勉強になりました.
よろしいと思います.
今回の授業ではポインタについて学んだ.
*を忘れがちなので注意したい.
ポインタを用いる場合は必要ですね.
関数で出した値を複数保存することができたので以前やった課題がより簡潔に書けた気がします.
おー,素晴らしい.
ポインタを用いることで区別できることがわかった.
アスタリスクを忘れることが多々あったので注意する必要があると感じた.
コンパイル時にエラーがでるので大丈夫でしょう.
今回の課題は説明せよという形式が多く内容を深く理解しなければならなかったので,
コードひとつずつに意味を考えながらコーディングできた気がした.
よろしいと思います.
コンピュータでの変数とメモリとアドレスの関係を
我々の生活で例えられていてとてもわかりやすかったです.
関数を使う時の実引数と仮引数の関係がまだよくわかってないので,
しっかり復習したいです.
生活...の部分を理解してくれたのであれば,この例を用いて良かったと思います.
アドレスの性質をつかむのが難しかったですが,
演習を通してかなり使いこなせるようになりました.
よろしいと思います.
今回の内容はいつもより少し難しく感じましたが,
何とか正しく実行できました.
コンピュータがどのように変数の値をメモリに格納しているのかをはっきり理解しておかないと,
ポインタを応用するのは難しいと思うので,
そのような仕組みについてしっかりと復習しておきたいと思います.
そうですね.復習してもらえば大丈夫だと思います.
今回の授業ではポインタについて学びました.
アドレスとポインタの関係は何となく理解できましたが引数との関係が少し難しく感じたので,
課題のコードを見ながらどのような処理の動きをしているのかを考えて苦手意識を克服していきます.
よろしいと思います.
本日も講義ありがとうございました.
ポインタを用いるときに,
アスタリスクを忘れてしまうことが何回かあったため,
そこを気を付けたいと思いました.
そうですね.気をつけましょう.
課題をやり,
ポインタを少しずつ理解できたと思います.
理解できているのであればよろしいと思います.
今回の講義内容は,
普段よりもコンピュータの処理の仕組みに踏み込んだ内容で難しかったように思える.
ただ課題が,仕組みについて1つ1つのテーマに沿ったものなので,
課題をしながら理解ができた.
質問なのですが,
変数に対するアドレスは常に同じなのでしょうか.
いろいろ試していたら,
アドレスが同じ数字でも異なる時がありました.
デバイスやOSによっても変わるものなのでしょうか.
もちろん変わります.デバイスやOSではなく,実行するたびに変わる可能性があります.
仮引数の値には実引数の値がコピーされ,
仮引数の値を変更しても実引数の値は変わらないという部分は未知だったので驚きました.
また,それを解決するためにポインタがあり,
他にも関数から2個以上の情報を戻り値を使用せずに戻すといった部分は大変便利であると感じました.
一方乗算としての"*",ポインタを宣言するための"*",
間接参照演算子としての"*"についてはどれも同じ"*"なので,
使用の際に深く注意する必要があると感じました.
また,ポインタについて自主的に学習を進めていくうちに
ダングリングポインタの危険性についても学んだので,
これらのことには十分に注意して今後ポインタを用いたプログラムを書いていきたいと思いました.
よく理解してくれていると思います.
本日習った事柄はこんがらがりやすいので,よく復習したい
そうですね.復習してください.
今日はポインタについて学んだが,
演習をやる上で&やを使う場所をきちんと理解できていなかったことが分かったため,
きちんと復習するつもりだ.
それが重要ですね.
今回の内容は理解に時間がかかったので,
課題をあまり進められなかった.
家で復習して理解を深めたい.
分からなければ質問してください.
&と*の有無がまだ曖昧なのでよく復習しておきたい
復習してください.
ポインタという概念がなんとなく理解できたと思う.
scanfで&を使うときと使わない時があったが,
その違いもわかりよかった.
よろしいと思います.
今日の講義ではアドレスやポインタについて学んだ.
1週間たって先週の内容を少し忘れてしまっていてやりずらい課題があった.
復讐すれば思い出すでしょう.
今日の内容は,
今までになかった概念でした.
識別子について最初に宣言していなくても,
アドレスから表現できるところがいいと思いました.
よろしいと思います.
今日はポインタについて勉強した.
演習の際に実引数と仮引数の関係をよく理解していなく,非常に苦労した.
次回も頑張りたい.
演習をこなせば大丈夫です.
今回,
ポインタというものが授業聞いても,
あんまり理解できなかったが演習してよく理解することができた
よろしいと思います.
今日の演習では,
ポインタ,アドレス,間接参照演算子が頭の中で混ざってしまい苦労した.
途中で,値渡しについてある程度理解できたことで何とか進められるようになった.
だんだんとできることが増え複雑になってきたのでしっかりと復習をしながら進めていきたい.
そうですね.分からなくなったら元に戻るのが良いと思います.
演習を通してポインタの使い方がわかりました.
数学の関数と逆関数のようなイメージをもちました.
そうですね.そういうイメージですかね.
今回も講義の方ありがとうございました.
関数の値を変えるにはそのポインタを使えばいいということがわかりました.
また今回の課題を通じてnilという値がprintfで出力されたのですが,
nilとNULLは同じものと見てよいのでしょうか?
同じものではないです.どんな書き方をしたのか見せてくれますか?
本来戻り値を得ることができないvoid関数に対して
戻り値のようなものを定義できるのはすごいと思った
確かにそうですね.
まだ簡易的に使っているからかもしれないが,
やはりポインタを使う利便性が実感できなかった.
これから必要になると思います.
アドレスやポインタについて少し理解するのが大変だったが,
理解できてからはスムーズに進めることができたので良かったです.
よろしいと思います.
アドレスとポインタの使い方は難しく,
課題13に思いの外時間がかかってしまった.
でもできましたか?
ポインタについて詳しく学んだことがなく,
内容も普段より複雑だった.
変数のxと&xの関係が,
ポインタの*pxとpxの関係と同じと理解した.
xと&xの関係は,xが元の変数で&xがそのアドレスという意味です.
「ポインタの*px」と言っているのが意味を理解できていませんが,
これは間接参照演算子とういことでしょうか.だとしたら,そうですね.
今回はアドレスやポインタについての理解を深めた.
2変数以上の出力に影響を与える関数を定義する際はアドレスによる定義が必要であるということを学んだが,
これは関数を使いこなすにはかなり重要な事項だと思われる.
使いこなせれば便利になりそうなので,
これから意識していきたい.
それがよろしいと思います.
初学だとついていけた自信がないので夏休みにC言語の勉強をしていて良かったと改めて感じた.
おー,素晴らしい.
ポインタを活用することによって,
仮引数による演算結果が実変数にも反映されるということが面白かったです.
課題についてですが,
課題2と課題3は同じ結果で,
それに対する理由も同じであるように思えますが…
そう思うのであれば,そのように答えれば良いと思います.
今回の講義では,
ポインタについて学びました.
個人的には「*」を多用し過ぎており,
分かりにくいソースコードだなと思いました.
課題14において,「引数は9個にする」という条件がない場合は,
ポインタを使用しない方法でもできるのではないかと思いました.
具体的には,引数が5つ(標準入力から得る5つの整数分)にした関数を用いて,
その関数の中で和,平均,2乗平均,分散を求め,
各値を出力,それからmain関数で呼び起こすという方法です.
計算した値を出力するだけであればそれでもよいですが,
計算した値をさらに使いたい時はこまりますね.
今日の講義では,
メモリ上の位置を表すポインタについて理解することができた.
課題の中で関数における仮引数をポインタとして定義するのが少し難しいと感じた.
わからないときは聞いてください.
動作をイメージしながらコードを入力し想像通りの動作が確認できたとき
理解できてるのだなと感じることができた.
よろしいと思います.
今日の講義では,
ポインタについてやったが,
初め講義を聞いているときには良く分からなかった.しかし,
演習のときにコンパイル・実行がうまくいかなくて教科書や資料を読み返して,
少しずつ必要な場面が分かってきました.
long int やchar,double,floatのときにどの変換仕様を使うのか曖昧だったので整理しておきたい.
分かってきたのであればよろしいと思います.
本日も講義ありがとうございました.
最初はあまりよくわからなかったのですが,
課題を1つずつ達成していくうちにコツがつかめてきて楽しかったです.
いいですね.コツを掴んでいるようで.
講義ありがとうございました.
池口先生のアドレスが住所,
メモリが家という説明はとても分かりやすく,
すぐに頭に入ってきました.
理解してくれたのであれば良かったです.
講義ありがとうございました.
課題13の引数の設定には苦戦しましたが,
一旦資料を読み返して理解を深めてから再挑戦することでなんとか解くことができました.
よろしいと思います.
プログラムにおいてポインタを用いることは変数とメモリの関係を具体的に理解することに役立ったと思います.
それにより,C言語以外のプログラミング言語において,
関数の引数に値を渡すときに,例えば,参照渡しであるかどうかなどを判断しやすくなりました.
素晴らしい.
講義ありがとうございました.
ポインタの仕組みは複雑でしたが,
一度理解するとすんなりと使えるようになった気がします.
ポインタ変数を定義するときは,
「int *」のように「変数の型+*」をひとまとめにして定義の形としてとらえるとわかりやすいと感じました.
ですが,それだと一度に複数のポインタ変数を定義するときに少しややこしくなりますね.
今回の課題4で,
アドレス値の差が生じる原因について考察しましたが,
たぶん,その間に変数の値が格納されているのだと思いますが,
その場合,なぜサイズが同じなはずのlong int型とint型の変数のアドレス値の幅が異なるのでしょうか?
long int とintはサイズは同じではないと思います.