3 文字リテラル

最後にポインターのおもしろい使い方を示そう。おもしろいだけでなく、使い方によって はかなり便利な機能である。

ダブルクォーテーション""で囲まれた文字列を文字型リテラルと呼ぶ。この文字型リテラ ルを使うと、その文字列がメモリーのどこかに格納されて、その先頭アドレスを返す。実 際の例を、リスト4に示す。たぶん、プログラムを見れば、その結果は 予想できるであろう。

   1 #include <stdio.h>
   2 
   3 int main(void){
   4 
   5   char *p;
   6 
   7   p="Hello World !!";
   8 
   9   printf("%s\n", p);
  10 
  11   return 0;
  12 }
\fbox{実行結果}
Hello World !!

鋭い学生は、配列を使わないで、文字列を取り扱っているところに気が付くであろう。 昨年の講義では、文字列を扱うためには配列を使わなくてはならな いと述べた。そして、任意の文字列を配列に代入するためには、spfintf()あるいはstrcpy()関数を用いる必要があり、代入演算子は使えないと述べたはずである。。

しかし、ここでは配列を使わないし、代入演算子で文字列を代入している。このプログラ ムの7行目は、次のように動作するのである。

このようなことから、ポインターpは、配列名と同じ働きができるのである。従って、 9行目で文字列がディスプレイに表示できる。

ポインターpは、配列名と同じなので、

printf("%c",p[0]);
 
として、Hの文字を表示することも可能である。


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年6月24日


no counter