C 基本講座

アドレスとは

LinkedInラーニングの無料トライアルを今すぐ試そう

無料で視聴する すべての加入プランを見る
このレッスンでは、ポインタについて学習する前にメモリ上の番地であるアドレスについて説明します。
講師:
06:17

字幕

このレッスンではポインタについて学習する前にメモリ上の番地であるアドレスについて説明します。いよいよ C 言語の最難関と言われるポインタの登場です。けれどもじっくり学んでいけばポインタは決して難しいものではありません。ポインタはアドレスを記憶する変数です。このことをよく覚えておいてください。ではそもそもこのアドレスとは何でしょう。コンピューターの中にはメモリがあり、プログラムもデータもそのメモリに記憶されています。このメモリには一連のアドレス、番地がつけられていてコンピューターはこのアドレスを指定して、メモリからプログラムやデータをCPU に読み込んだりデータをメモリに書き込んだりしています。変数や配列はコンパイラによってメモリ上に割り振られそれぞれアドレスを持ちます。2バイト幅の変数なら割り振られたアドレスから2バイト分の領域を占め、1バイト幅で要素数3の配列では割り振られたアドレスから3バイト分の領域を占めています。この図はイメージでアドレスは処理系により異なりますが関数内で宣言された変数や配列はスタック領域と呼ばれるメモリ上の領域に配置され、宣言した順が後の方が上に積まれ、アドレスが小さくなります。 では実際にプログラムを使って変数や配列のアドレスを表示してみましょう。このプログラムは変数の値とアドレスを表示します。まず実行してみましょう。このように変数の値とアドレスを表示しました。このアドレスは環境によって異なります。変数名は変数の値を示します。そのため a と記述するとこのように値を表示します。「&変数名」で変数のアドレスを取り出します。この&はアドレス演算子と呼ばれ変数のアドレスを取り出すことができます。そのため、このように&a と記述すると変数のアドレスを取得することができます。尚この %p はアドレスを表示する変換指定です。では次に一次元配列のアドレスを表示してみましょう。実行してみましょう。このような結果が表示されました。一次元配列の場合、配列名と添え字で配列要素の値を示します。そのため、この s[0][1][2] で配列要素を表示しています。また、「&配列名[添字]」で配列要素のアドレスを示します。そのため、この&をつけた s[0][1][2]この部分でそれぞれの要素のアドレスを表示しています。さらに配列名だけで配列の先頭要素のアドレスを示すことができます。そのため、この部分でこの s の配列の先頭要素のアドレスを表示しています。 これは s[0] のアドレスと同じものです。さらに二次元配列も見てみましょう。実行してみましょう。このような結果が表示されました。二次元配列の場合、配列名と行と列の添え字で要素の値を示します。そのため、この部分でそれぞれの要素の内容を表示しています。また、配列名と行の添え字で行の先頭要素のアドレスを示します。この部分でそれぞれの行の先頭要素のアドレスを表示しています。配列名だけですと配列の先頭要素のアドレスを示します。この部分で配列の先頭要素のアドレスを示しています。さらに配列名と行と列の添え字の前に&をつけるとそれぞれの要素のアドレスを示します。この部分でそれぞれの要素のアドレスを示しています。ですから b の先頭要素のアドレスとb[0] の先頭要素のアドレス、それから b[0][0] のアドレスはみな同じものになっています。今までの結果を纏めてみましょう。変数では変数名は値ですが、配列では配列名はアドレスです。「配列名[添字]」とした場合一次元配列では要素の値を示していますが、二次元配列では行の先頭要素のアドレスです。ややこしいので間違えないようにしてください。このレッスンではポインタについて学習する前にメモリ上の番地であるアドレスについて説明しました。

C 基本講座

C言語はUNIXというOSを記述するために開発されたプログラミング言語で、組み込みシステムの開発を中心に今も使われています。このコースでは簡単なプログラムを作成しながら、C言語の基本的な文法を学びます。データ型や制御文などの基礎的な文法からポインタや構造体といったC言語の特徴的な内容まで幅広く取り上げます。よく使われる標準ライブラリ関数も数多く紹介します。

5時間45分 (60 ビデオ)
現在、カスタマーレビューはありません…
ソフトウェア・トピック
プラン加入者限定
発売日:2017年11月05日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。