【ハウツー】
ポインタはC言語を理解する上でもっとも難解な存在だと言われています。ポインタの概念を理解するためには、システムがメモリをどのように管理しているかを理解する必要がありますし、ポインタの仕組みを理解していても、その扱いを間違えればプログラムはたちまちクラッシュしてしまいます。
ポインタは、変数がデータを保存している仕組みと深く関係しています。プログラミング言語では、データは識別子を持った変数に保存されます。しかし、物理的なコンピュータの中では主記憶装置(いわゆるメモリ)にデータが保存されます。通常、メモリは8ビット単位で区切られたアドレスを持ちます。システムは変数のような名前ではなく、整数で表現可能なアドレスによってデータの位置を特定しています。32ビットコンピュータに搭載できるメモリの最大容量が4GBという制限があるのも、32ビットの整数で表現できるアドレス範囲が4,294,967,295までだからです。
ポインタは、この変数のメモリアドレスをプログラムで利用する手法です。通常の変数ではなく、ポインタを使ってデータを管理する理由はいくつかありますが、最大の特徴はアドレス計算が可能になる点にあります。変数とは異なり、ポインタは変数が保存されているメモリ上の位置を表す整数を保存します。この整数を算術演算することで、ポインタを通して読み書きするデータの位置を自由に移動できます。ただし、適当なアドレスに自由にアクセスできるものではありません。メモリはシステムによって管理されているため、アプリケーションに権限のないアドレスを読み書きしようとするとクラッシュしてしまいます。
複雑で難解と言われるポインタですが、その実体は変数が保存されているメモリアドレスを取得して、そのメモリアドレスから間接的にデータにアクセスするというものです。この概念と、関連する文法を体系的に学習すれば難しいものではありません。本稿では、ポインタの性質と関連する文法についてご説明します。
Visual C++ 2008 Express Editionのインストールや設定方法については「ゼロからはじめるC言語 - 環境構築編」を参照してください。
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
シリーズ最終作『ゼロの使い魔F』のラストはどうなる!? [10:00 2/11] ホビー |
|
kizunaworld.org、LAのアーティスト・TOKiMONSTAによる楽曲を追加 [10:00 2/11] クリエイティブ |
|
萩尾望都がパリでマンガ教室、「11人いる!」の扉絵作り [09:45 2/11] ホビー |
|
[西部警察]大門のサングラスは照れ隠し? 制作担当者が語る舞台裏 [09:00 2/11] エンタメ |
|
9ストーリーズ ~バレンタインのエピソード~ [08:05 2/11] キャリア |