C 基本講座

ポインタで文字列リテラルを指す

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

無料で視聴する すべての加入プランを見る
このレッスンでは、ポインタで文字列リテラルを指し、間接参照する方法について説明します。
講師:
04:28

字幕

このレッスンではポインタで文字列リテラルを指し間接参照する方法について説明します。文字列は文字型配列に一旦格納して扱ってきましたがポインタを使うとメモリ上のどこかに存在する文字列リテラルを直接アクセスすることができるようになります。ではプログラムを使って文字列リテラルを直接アクセスしてみましょう。まず最初に比較のためにchar 型の配列をポインタで指して文字列を表示してみましょう。とりあえず実行してみます。このように ABC と表示しましたね。この図のようにchar へのポインタ型の変数 p1 を宣言しその p1 に 配列 s の先頭要素のアドレスを代入しています。この printf の %s 変換指定は引数に文字列のアドレス、つまりポインタを指定するのでp1 を指定すれば文字列 ABC が表示できます。次に文字列リテラルをポインタで指して文字列を表示してみましょう。こちらも実行してみましょう。同じように文字列が表示できています。こちらもこの図と全く同じです。メモリ上のどこかに存在する文字列リテラルのアドレスをポインタ p2 は代入されているのでこの p2 を printf の%s 変換指定で出力すれば、このように文字列リテラルの内容が表示できます。 試しに p1 と p2 に格納されているアドレスを表示してみましょう。このように随分と離れた場所に格納されているのがわかると思います。この図の配列のアドレスと異なっていますがこれは環境によって異なるので了解してください。実は配列の方はメモリのスタック領域と呼ばれる場所に確保されますが、文字列リテラルのほうは静的領域と呼ばれる場所に確保されるのです。char 型の配列はこのように記述するとポインタを使って内容を書き換えることができます。今 *p1 で、この大文字の A を小文字の a に書き換えてみます。実行してみましょう。このように小文字に書き換わりました。文字列リテラルのほうも同様にポインタを使うとこの小文字の l を大文字に書き換えることができそうですが、実は文字列リテラルは書き換えてはいけません。文字列リテラルを書き換えることができるコンパイラも存在しますがGCC の場合には、このまま実行すると動作を停止してしまいます。ですからもし文字列を書き換える必要がある場合は一旦 char 型の配列に格納した後で書き換えるようにしてください。ここはコメントで伏せておきましょう。このレッスンではポインタで文字列リテラルを指し間接参照する方法について説明しました。

C 基本講座

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

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

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

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

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