C言語 配列と文字配列の初期化






スポンサードリンク

配列の初期化。前回は変数の初期かに付いて勉強してみました。今回は配列及び文字配列の初期かを勉強してみたいと思います。左程重要では無いのですが、今後使う場合があるので目を通しておいて下さいね。

変数の初期化の場合は 例【 int a = "123"; 】変数に直接代入する形なのでわかりやすいですが、
配列 文字配列の場合は 例【 int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 】 { } を用いるのが特徴です。
※入力した初期値は任意の数字でOKです。

配列宣言をすると 例【 a[10] 】の場合には以下のように変数が用意され、それぞれ初期値が代入されます。
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
1 2 3 4 5 6 7 8 9 10


配列の初期化サンプル
※【 printf 】による出力は確認の為です。

#include <stdio.h>
int main(viod)
{

   int a[5] = {1, 2, 3, 4, 5};

   printf("a[0]=%d\n",a[0]);
   printf("a[1]=%d\n",a[1]);
   printf("a[2]=%d\n",a[2]);
   printf("a[3]=%d\n",a[3]);
   printf("a[4]=%d\n",a[4]);

return 0;
}

解説図

上記の実行結果


文字列型変数宣言【 char 】文字配列の初期化
ます基本の二通りから
文字コードを直接書く方法 例【 char e[6] = {65, 66, 67, 68, 69, 0}; 】文字列終端マークの0が最後に必ず入ります。
文字を直接書く方法 例【 char f[6] = {'A', 'B', 'C', 'D', 'E', '\0'}; 】

上記の文字配列初期化表
※水色行の部分は文字コードになります。
e[0]
f[0]
e[1]
f[1]
e[2]
f[3]
e[4]
f[4]
e[5]
f[5]
e[6]
f[6]
65 66 67 68 69 0
A B C D E \0

サンプル

#include <stdio.h>
int main(void)
{
   char e[6] = {65, 66, 67, 68, 69, 0};
   char f[6] = {'A', 'B', 'C', 'D', 'E', '\0'};

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

   printf("%c\n",f[0]);
   printf("%c\n",f[1]);
   printf("%c\n",f[2]);
   printf("%c\n",f[3]);
   printf("%c\n",f[4]);
   printf("%c\n",f[5]);
return 0;
}

解説。(重要なポイントの説明があるのでここでは解説図は有りません。)
【 char e[6] 】の初期値数値の出力には最後に【 \n 】にて改行し【 char f[6] 】の出力に付いてはに付いては、それぞれ【 \n 】にて改行をしております。

上記の実行結果です。



ここまでは基本初期化の方法を勉強してまいりました。今度は文字列専用の初期化方法に付いて説明させていただきたいと思います。
例 【 char e[6] = "ABCDE"; 】これでe[0]〜e[4]文字列の初期化になります。
※e[5]には文字終端マーク【 0 】が必ず入ります。【 char e[6] = "ABCDEF"; 】とするとエラーになります。

e[0] e[1] e[2] e[4] e[5] e[6]
A B C D E 0


例2 【 char f[6] = "ABC"; 】の場合、f[0]〜f[2]まで初期化され余った配列は【 0 】が代入されます。
f[0] f[1] f[2] f[4] f[5] f[6]
A B C 0 0 0

配列の添字(長さを決める)を省略する方法
例 【 char g[] = "ABCD"; 】この場合適切な配列を確保してくれます。
通常の変数の場合もこの省略方法を使う事が可能です。

例2 【 char g[] = {'A', 'B', 'C', 'D'}; 】
以下のように確保&初期化されます。
g[0] g[1] g[2] g[3] g[4]
A B C D 0

例3 【 int a[] = {1, 2, 3, 4}; 】
以下のように確保&初期化されます。
a[0] a[1] a[2] a[4]
1 2 3 4

まとめ。
文字列配列の初期化&変数配列の初期化サンプルです。
※【 char 】の変換文字列例 は 【 %s 】文字列として出力できるものを使用。一文字づつ出力する場合は
例 char s[5]の場合 【 printf("%c",s[0]) 】〜【 printf("%c",s[4]) 】とすればOKです。
【 printf 】の出力は、あくまでも初期設定数値を確認するためのもので余り気にされる必要はありません。

#include <stdio.h>
int main(void)
{
   int a[3] = {1, 2, 3};
   int b[] = {11, 12, 13, 14};
   char s[5] = "ABCD";
   char ss[] = "abcd";
   printf("a[0]=%d a[1]=%d a[2]=%d\n",a[0],a[1],a[2]);
   printf("b[0]=%d b[1]=%d b[2]=%d b[3]=%d\n",b[0],b[1],b[2],b[3]);
   printf("%s\n",s);
   printf("%s",ss);

return 0;
}

解説
特に難しくは無いのですが、今までの事を一通り読んでいただくと理解して頂けると思います。
基本初期化と配列長省略がポイントです。

上記の実行結果です。

説明は以上です。

あかかげまるのC言語入門はこちら!!

スポンサードリンク

パソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール

 Subscribe in a reader


ページトップへ