C 基本講座

ポインタで構造体を指す

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

無料で視聴する すべての加入プランを見る
このレッスンでは、ポインタで構造体型の変数と配列を指す方法について説明します。
講師:
05:36

字幕

このレッスンでは、ポインタで構造体型の変数と配列を指す方法について説明します。このプログラムは student 型構造体の変数と配列を宣言しそれぞれ初期化しています。そしてそのメンバーを printf で表示しています。まずは実行してみましょう。このように各メンバーを表示しますね。この構造体の変数と配列をポインタで指してみましょう。構造体をポインタで扱う手順は変数や配列をポインタで扱う場合と全く同じです。ポインタはまず宣言し、次にアドレスを代入し、そして参照するのでしたね。まずポインタを宣言します。構造体型のポインタの宣言は、このようにstruct の次に構造体のタグ名を書きポインタ宣言子の*を書いてからポインタ名を記述します。それぞれ student 型の構造体を指すのでこのように student 型で宣言しています。これで p1 と p2 は student 型へのポインタになります。次にアドレスの代入ですが構造体の変数も配列もそれぞれ通常の変数や配列と同じようにアドレスを取り出します。構造体の変数のアドレスはアドレス演算子の&を用いて&「構造体の変数」で記述します。構造体の配列の先頭要素のアドレスは構造体の配列名で表します。 ですから、この記述で p1 には構造体の変数のアドレスが代入されp2 には構造体の配列のアドレスが代入されています。最後にポインタの指す構造体のメンバーを参照する方法ですがドット演算子を使うとこのように記述することになります。配列のほうはポインタを増加させないでp2+i と書く例とそしてポインタを増加させてp2++ と書く例の二通りで書いています。このように丸括弧がたくさんついていて見づらいですね。けれども、この丸括弧を書かないとドット演算子のほうが間接演算子の*よりも優先順位が高いのでここはこのように解釈されてしまいます。これは文法的に誤りでコンパイルするとエラーになります。ここは戻しておきましょう。このまま実行してみます。このようにメンバーを表示することができます。C 言語ではこの(*p1 ).no の記述をアロー演算子と呼ばれる演算子を用いて書き換える事ができます。アロー演算子を使うとここはこのように記述することができます。この書き方ですと、一目でポインタが構造体のメンバ-を指していることがわかり大変にわかりやすいのではないでしょうか。メンバ-を参照している部分を全部アロー演算子で書き直してみましょう。 どうでしょうか。先ほどの丸括弧で囲むよりもだいぶすっきりしましたね。実行してみましょう。このようにアロー演算子を用いても表示ができますね。このレッスンでは、ポインタで構造体型の変数と配列を指す方法について説明しました。

C 基本講座

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

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

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

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

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