配列(array)
配列
- 同じ型のデータの並びを配列と呼ぶ
- 要素は連続した領域に並ぶ
- 要素の参照はインデックス(0から始まる何番目)で行なう
要素の型 配列名[要素の数];
要素の型 配列名[要素の数] = { 要素0, 要素1,,, };
- 要素の数は省略できる
- 要素は定数式で与える
- 文字配列の場合は文字列定数を代入して初期化できる
char 配列名[要素の数] = 文字列定数;
本当は
char s[4] = { 'a', 'b', 'c', '\0' };
や
char s[] = { 'a', 'b', 'c', '\0' };
の簡略形である!
配列名[インデックス]
要素の型 配列名[高次元要素の数]…[低次元要素の数];
文字列を1文字ずつ表示してみよう
/* Hello World!! と画面に表示する */
#include <stdio.h>
#include <string.h>
main()
{
char s[20] = "Hello World!!";
char *p;
int i, j;
printf("printfで文字列を表示\n");
printf("%s\n", s );
printf("配列バージョン\n");
j = strlen(s);
for( i = 0; i < j; i = i + 1 )
printf("%c", s[i] );
printf("\n");
printf("ポインタバージョン\n");
p = s;
while( *p != '\0')
{
printf("%c", *p );
p = p + 1;
}
printf("\n");
}
/* end of aandp.c */
- 同じであることを確かめてみよう!
/* Hello World!! と画面に表示する */
#include <stdio.h>
#include <string.h>
main()
{
char s[20] = "Hello World!!";
char *p;
int i, j;
printf("printfで文字列を表示\n");
printf("%s\n", s );
printf("配列バージョン\n");
for( i = 0, j = strlen(s); i < j; i++ )
printf("%c", s[i] );
printf("\n");
printf("ポインタバージョン\n");
for( p = s; *p; p++ )
printf("%c", *p );
printf("\n");
}
/* end of aandp1.c */
- コマンドラインの引数をプログラムに渡す方法がある
- mainが呼び出された時に、
- 引数の個数を表す整数(argc: argument count)
- 引数文字列へのポインタの配列のアドレス(argv: argument vector)
が渡される
- 詳細はmainへ