C 基本講座

ポインタの配列について

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

無料で視聴する すべての加入プランを見る
このレッスンでは、ポインタを複数まとめて配列として扱う方法を説明します。
講師:
03:54

字幕

このレッスンではポインタを複数まとめて配列として扱う方法を説明します。ポインタも他のデータ型と同様に配列として宣言し、複数のアドレスを同時に管理することが可能です。このポインタの配列は複数の文字列を管理するときに二次元配列の代用としてよく用いられます。複数の文字列を二次元配列とポインタの配列で扱った例をプログラムで見てみましょう。とりあえず実行してみましょう。このように格言が表示されます。このプログラムでは11 行目から 15 行目までで3個の文字列を二次元配列に初期化しています。そして 16 行目から20 行目までで3個の文字列リテラルのアドレスをポインタの配列に格納しています。maxim p のほうはポインタ宣言子とそして角括弧の中に要素数が書いてありますのでこれでポインタの配列であることがわかります。プログラムを見ているだけでは違いがよくわからないと思いますので図で解説してみましょう。二次元配列の maxim は文字列を1文字ずつ配列要素に格納しています。二次元配列の縦横の要素数は固定なので一番長い文字列のif you can dream it, you can do it.に合わせて要素数 36 で宣言しなければなりません。 もしもっと長い文字列を格納する場合にはそれに合わせて要素数を書く必要があります。ですから短い文字列と長い文字列を格納するような場合にはかなり無駄な領域がでてしまいます。一方 maxim p のほうはこのように文字列リテラルのアドレスを格納するだけなので領域に無駄は生じません。但し二次元配列のように連続して配置されるとは限りません。また、各文字列リテラルを指すポインタが必要になるのでその分の領域が必要になります。もちろん文字列の書き換えはするべきではありません。複数の文字列を二次元配列で扱うか、ポインタの配列で扱うかはこのような性質を考慮して選択するようにしてください。23 行目以降で二次元配列とポインタの配列でそれぞれ文字列を表示していますが、見たところ記述が全く一緒です。しかしこれらは次のような違いがあります。printf の %s 変換指定は引数にポインタ、つまり文字列のアドレスを指定します。二次元配列は「配列名[行の添字]」で行の先頭要素のアドレスを示します。ですからこの記述で二次元配列の各行の文字列を表示することができます。一方ポインタの配列の方は各要素が文字列リテラルへのポインタですから、このように記述することで文字列を表示することができるのです。 このレッスンではポインタを複数まとめて配列として扱う方法を説明しました。

C 基本講座

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

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

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

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

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