早速ですが、次のコードを実行してみましょう。

 1  #include <stdio.h>
 2  
 3  int main() {
 4      char s[10];
 5  
 6      s[0] = 'H';
 7      s[1] = 'e';
 8      s[2] = 'l';
 9      s[3] = 'l';
10      s[4] = 'o';
11      s[5] = 0;
12  
13    printf("%c\n", s[0]);
14      printf("%s\n", s);
15  
16      return 0;
17  }
H
Hello

上記のコードでは、4行目で、char 型の配列 s を要素数 10個で宣言しています。
それから、6 ~ 10行目では、配列に文字を格納しており、11行目では、0を格納しています。

13行目では、配列 s の 0 番目を文字として表示しています。これはもちろん "H" が出力されます。
次の14行目では、配列 s を文字列として表示しています。
すると、"Hello" が出力されました。
これはどういうことでしょう?

実は、文字列は、ただの文字の配列で、以下のようになっています。

また、最後の 0 は、文字列の終了をコンピュータに教えるために記述します。

これを確かめるために、以下のコードを実行してみましょう。

#include <stdio.h>

int main() {
    char *s = "Hello";

    printf("%c", s[0]);
    printf("%c", s[1]);
    printf("%c", s[2]);
    printf("%c", s[3]);
    printf("%c", s[4]);
    printf("\n");

    return 0;
}

出力は以下になるかと思います。

Hello

これで、文字列はただの文字の配列ということがわかりました。

次の記事

型とバイト

記事一覧

ゾンビでもわかるC言語プログラミング


0件のコメント

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です