早速ですが、次のコードを実行してみましょう。
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
これで、文字列はただの文字の配列ということがわかりました。
0件のコメント