ポインタと文字列

 


Cの文字列は "   "を用いて表します。たとえば、"Name"という文字列はメモリ上に次のように格納されます。

N a m e \0

\0は文字列の終わりを示す印で、Cコンパイラが自動的に付加します。ポインタを用いて文字列を操作する方法は基本的に配列のときと同じで、次のようにします。

char * str ;
str = "Name" ;

   まず、str をchar型へのポインタとして宣言します。その後 str = "Name" により"Name"を格納してあるメモリの先頭アドレスをポインタ str に代入します。"Name"という文字列全体がstrに代入されるわけではなく、先頭文字’N’が格納されているアドレスがポインタstrに代入されるのです。
   str = "Name";の時点でポインタstrは文字列"Name"の先頭を指しているので、*str で文字’N’を取り出すことができます。ここで str++としてポインタを進めるとポインタ変数は次の文字を指すので、 *str は、’a’を取り出し、同様にしてインクリメントしていけば、’m’、’e’と順番に取り出せます。

(例 1.4)
                void main (void)
               {
                    char * str ;                       char型のポインタ変数strの宣言
                    str = "Name" ;
                 ポインタ変数strに文字列の先頭アドレスを代入
                    while (*str!='0')
                     {
                           printf("%c \n",*str) ;
                            str++ ;
                      }
               }

実行結果

          N
          a
          m
          e
         


 


「基礎講座もくじへ」

「Q&Aもくじへ」

「つぎへ」