配列とは, 変数の列から構成されるデータである. 数学に例えると [集合 (set)] や [数列 (sequence)], あるいは [ベクトル (vector)] である.
配列宣言子 (Array Declarator):
識別子[サイズ]
例えば,:
double x[5];
double x[5] = {1.5, -0.2, 4.7};
array.c
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h>
int main(void){
int m[10] = {3, 7, 10};
int i;
for(i = 0; i < 10; i++)
printf("m[%d] = %d\n", i, m[i]);
return 0;
}
|
array.c の実行結果は:
[cactus:~/code_c/c_tuts]% ./array
m[0] = 3
m[1] = 7
m[2] = 10
m[3] = 0
m[4] = 0
m[5] = 0
m[6] = 0
m[7] = 0
m[8] = 0
m[9] = 0
array2.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h>
int main(void){
int n[2][3] = {
{1, 2, 3},
{11, 22, 33}
};
int i, j, sum;
// 行の和
for(i = 0; i < 2; i++){
sum = 0;
for(j = 0; j < 3; j++){
sum += n[i][j];
printf("%d\t", n[i][j]);
}
printf("| %d\n", sum);
}
printf("------------------------+\n");
// 列の和
for(j = 0; j < 3; j++){
sum = 0;
for(i = 0; i < 2; i++){
sum += n[i][j];
}
printf("%d\t", sum);
}
printf("\n");
return 0;
}
|
array.c の実行結果は,
1 2 3 | 6
11 22 33 | 66
------------------------+
12 24 36
str_char.c
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h>
int main(void){
char str[] = "C language.";
size_t i;
printf( "sizeof(str) = %zd\n\n", sizeof(str) );
printf("\t%%c\t%%d\t%%x\n");
for(i = 0UL; i< sizeof(str); i++)
printf("str[%ld]\t%c\t%d\t%x\n", i, str[i], str[i], str[i]);
return 0;
}
|
str_char.c の実行結果は,
sizeof(str) = 12
%c %d %x
str[0] C 67 43
str[1] 32 20
str[2] l 108 6c
str[3] a 97 61
str[4] n 110 6e
str[5] g 103 67
str[6] u 117 75
str[7] a 97 61
str[8] g 103 67
str[9] e 101 65
str[10] . 46 2e
str[11] 0 0
str_cpy.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h>
#include <string.h>
int main(void){
char str[] = "ABCD";
char buf[20];
memset( buf, 0, sizeof(buf) ); // memset(buf, '\0', 20) と同じ
strcpy(buf, str);
printf("%s\n", buf);
strcat(buf, "EFGH");
printf("%s\n", buf);
return 0;
}
|
str_cpy.c の実行結果は:
[cactus:~/code_c/c_tuts]% ./str_cpy
ABCD
ABCDEFGH