Breaking News
Home / プログラミング / C / 【初心者必見!】C言語におけるポインタの性質

【初心者必見!】C言語におけるポインタの性質


皆さん,C言語ポインタが難しいという話をよく聞きませんか?

私も独学で初めてのプログラミングとしてC言語を学習した際,ポインタで躓いた覚えたがあります.しかし,基本性質さえ理解してしまえば難しくないんです!

そこで今回は基本性質を説明します.

そもそもポインタって何?

ポインタの前に,アドレスについて復習をしましょう.

アドレスとはaddress:「住所」のことです.変数はメモリ上に保存されます.変数が保存されているメモリの場所(メモリ番地)を表すのがアドレスです.私達が生活している世界で使われている「住所」と同じ意味合いですね.

もちろん「東京都◯◯区」と言うようにC言語においてもアドレスを表示することが可能です.変数の値が格納されているアドレスを表示するためには「&」というアドレス演算子を使います.

変数名の横に「&」を付けて記述します.注意すべき点としては,アドレスをフォーマット付きで出力するためには,変換仕様は「%p」を用いる点です.

 

ではアドレスの説明を踏まえていよいよポインタについて解説します。

ポインタ」とは,pointer:「指標,指し示す」などと言った意味があります.C言語のプログラミングに於いてもその例外ではなく,メモリ番地(アドレス)を指し示すものです.

記述例:

型名 *ポインタ名というように宣言します.

int型の変数のアドレスを入れられるポインタ変数という意味です.

使い方は以下のようにします.

説明すると,変数aのアドレスがポインタptrAに格納されるというものです.

ポインタの性質

ポインタはアドレス先を格納されるだけでは終わりません.アドレス先を参照できるということは,アドレスにある変数の値を得ることができます.

値を得るためには「*」という間接参照演算子を使います.

実行結果がどうなるか想像できますか?

実行結果は,どちらも同じ1が返って来ます.先程述べたようにポインタから元の変数の値を得ることができるからです.

 

つまり,逆に言うと,ポインタ*ptrA = 100とすると,アドレス元の値を変更することも可能ということです.

 

アドレス元の値を取得する,という性質が関数でよく使われます.ちなみに,ポインタの初期化をしないと予期せぬエラーを招く場合があるので,必ず初期化しましょう.

終わりに

いかがでしたか?

今回この時期ではポインタ基本性質について述べてきました.

本記事に書いてあるポインタC言語において基本中の基本で,非常に重要な機能です.意外と便利!と思えたならポインタの勉強をしてみてください.

そして,ぜひ扱えるようになりましょう!


About ItoYuichi

ItoYuichi
富山で学生やってます. 最近では主にRubyを扱っていますが,もともとC++でゲーム作ってました. 形式手法の勉強中です.

Check Also

エンジニア

【初心者必見!】配列を使ってシンプルに書こう!

C言語のみならず,プログラミン …