見出し画像

C言語学習5

ポインタの理解が曖昧であることがわかったので苦C 15章の復習をしました。


ポインタとは

3つの機能の総称。

  1. ポインタ型
    データ型のひとつだが、int, double, charなど他の型と合わせる必要がある。
    基になった型のサイズがわからないと、値を取り出すことができなくなってしまう。void ポインタ型も作れるが、値を取り出すことはできない。

  2. ポインタ値
    変数のアドレスのこと。ただの整数値。

  3. ポインタ変数
    ポインタ型で宣言された実際の変数のこと。
    基となった型の変数のアドレスを代入できる。
    さらに、記憶しているアドレスのメモリを読んだり書き換えたりできる。
    アドレス値は計算に使わず、モードを変更して計算に使用する。
    a. ポインタ変数モード
        アドレスへの代入と足し算引き算のみ。

    b. 通常変数モード
        通常の変数と全く同じ。
        さまざまな演算子を使用して計算を行うことができる。

って、苦C 15章に書いてありました。

どこが曖昧だったのか?

関数に引数として渡すとき、アドレスを渡せばいいのか値を渡せばいいのかわからなくなってしまいました。
というより、初めからしっかり理解できていなかったのがはっきりしただけです。

でも頭の中では今まで使った関数であれば、引数にアドレスを渡せばいいのか値を渡せばいいのか覚えているので、変数がポインタ変数なのか、通常変数なのかがわからなくなったって感じでした。

解決策

扱う変数がポインタ変数なのか、通常変数なのかすぐに理解できるようにポインタ変数は "p_" で始まるようにするとか命名規則を徹底してしまえばいいと思いました。


明日は学習できるほどまとまった時間が取れないので、
piscineに向けてC言語以外の細かいタスクを片付けていく予定です。

この記事が気に入ったらサポートをしてみませんか?