守くんのC言語講座 第5回 「配列」

とりあえずひと通り終わらせるのが先決なので、次の「配列」に進みます。配列とは同一デ−タをたくさん扱うときに便利な構造である。これからやるのは「1次元配列」というものである。

+---+---+---+---+----+---+---+---+
int tbl[100]; | | | | | | | | |
+---+---+---+---+----+---+---+---+
tbl[0] [1] [2] [3] .... [97][98][99]

という風なイメ−ジになる。int型の99個の要素からなる1次元配列を表している。tblを配列名、tbl[0]、tbl[1]を配列要素という。こうすれば、まとめて99個ものデ−タが格納できる。

配列宣言の書式:
デ−タ型 配列名[要素数];
デ−タ型 配列名1[要素数],配列名2[要素数];
ここでよく間違うのは、配列要素は[0]から始まること。[1]からではない。

1次元配列の初期化:
static int num[5]={1,2,3,4,5};

+---+---+---+---+---+
num | 1 | 2 | 3 | 4 | 5 | のようなイメ−ジ。
+---+---+---+---+---+
[0] [1] [2] [3] [4]

staticを配列の初期化で使うと、初期化されなかった要素は0が格納される。

ex.文字型配列strを"hello"で初期化してみよう。

char str1[6]="Hello";
char str2[]="Hello";
char str3[6]={'H','e','l','l','o','\0'}
char str4[]={'H','e','l','l','o','\0'}

※文字列を初期化するときは文字列+1の要素数が必要である。
要素数を省略すると、自動的に確保される。

次に、配列のデ−タの参照と入出力へ進む。まず、以下に例を示す。

#include <stdio.h>
main(void)
{
int num[10],i,gokei;
for(i=0;i<10;i++){
scanf("%d",&num[i]);
}
gokei=0;
for(i=0;i<10;i++){
gokei=gokei+num[i];
}
printf("合計 %d\n",gokei);
return(0);
}

●実行結果
1↓
2↓
3↓
4↓
5↓
6↓
7↓
8↓
9↓
10↓
11↓

合計 55↓

int num[10]を宣言し、for文で配列の各要素にデ−タを入力、次のfor文では各要素を参照している。