【C言語】変数のアドレスとポインタ
アドレスとは
・C言語のアドレスとはメモリの場所を直接表すために使われる、メモリ上の「住所」のこと
・変数の値はコンピュータのメモリに記憶される
・通常、アドレスは16進数で表現される
変数のアドレスを表示する
・アドレス演算子(&)を使って変数のアドレス(変数の置き場所)を表示する
・アドレスを出力する変換仕様には%pを使う
(実行例)
ポインタ
ポインタ・・・アドレスを格納することができる変数
・ポインタの宣言には変数の先頭に*を付ける
(実行例)
ポインタから変数の値を知る
ポインタに変数のアドレスが格納されると、
そのポインタから逆にたどって、元の変数の値を知ることができる。
* という演算子を使う。(間接参照演算子)
(実行例)
ポインタに別のアドレスを代入する
・ポインタに格納されているアドレスの値は同じ 型の変数のアドレスで上書きできる
(実行例)
ポインタを使って変数を変更する
・関節参照演算子(*)を使って、ポインタがさす変数に値を代入できる
(実行結果)
関数(引数)とポインタ
・関数の値渡し
実引数の値が渡される(値のコピーを受け取る)
関数が処理した結果は実引数に反映されない
・関数の仮引数をポインタにする(参照渡し)
間接参照演算子を使って実引数の値を変更可能
[確認] 関数の引数にポインタを使う
(実行例)https://paiza.io/projects/gtHQakQz9N0WThQ-LxlBjg
練習問題
問題①
(実行例)
https://paiza.io/projects/O4IXcCjMyXIHkocGM-IScA
問題➁
(実行例)https://paiza.io/projects/l1NENrGSZ-9A7VzdAHyeuw
よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただいております!