◎C言語での文字列の扱い
例示プログラム
#include <stdio.h>
main()
{
   char a[10];
   char *b, *b1;

   a[0]='a';
   a[1]='l';
   a[2]='p';
   a[3]='h';
   a[4]='a';
   a[5]='\0';   /* 終の印 単に 0 でもよい */

   printf("%s\n",a);/* alpha と表示される */ 

   b=a;         /* b=&a[0];と書いても同じ */
   printf("%s\n",b);/* alpha と表示される */ 

   /* 上の b=a は先頭アドレスを代入しているだけなので
      配列 a の内容を変更すると printf("%s\n",b);で表示
      される内容も変わる */

   a[0]='A';
   printf("%s\n",b);/* alpha と表示される */ 
   
   /* "alpha" と書くと、上の a[?] のように
     'a' 'l' 'p' 'h' 'a' '0' がこの順に入った
     名前のない配列が確保され、そのアドレスを示す */
   
   b="alpha";  /* '最初の a' の入った場所のアドレスが b に代入される */
   printf("%s\n",b);/* alpha と表示される */ 

   /* また、書式文字列を次のように与えることもできる */
   b1="%s\n";
   printf(b1,b);

   b1="<%s>\n";
   printf(b1,b);
   exit(0);
}
戻る