01 /****************************************/
02 /* 1 次元配列,初期設定,及び,ポインタ */
03 /* coded by Y.Suganuma */
04 /****************************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 /*
10 初期設定された値と確保された領域のサイズ
11 */
12 int x2[6] = {1, 2, 3, 4, 5, 6}; /* 6つのデータ領域 */
13 int i1;
14 for (i1 = 0; i1 < 6; i1++)
15 printf("%d ", x2[i1]);
16 printf("(%dバイト)\n", sizeof(x2));
17
18 int x3[] = {1, 2, 3, 4}; /* 4つのデータ領域 */
19 for (i1 = 0; i1 < 4; i1++)
20 printf("%d ", x3[i1]);
21 printf("(%dバイト)\n", sizeof(x3));
22
23 char c1[15] = {"test data"}; /* 15個のデータ領域 */
24 char c2[] = {"test data"}; /* 10個のデータ領域 */
25 char *c3 = {"test data"}; // 使用すべきではない(警告が出力される)
26 printf("%s (%dバイト)\n", c1, sizeof(c1));
27 printf("%s (%dバイト)\n", c2, sizeof(c2));
28 printf("%s (%dバイト)\n", c3, sizeof(c3));
29 /*
30 要素の参照と変更
31 */
32 int *x1 = x2; // x1 = &x2[0]でも可
33 x1[1] = -1;
34 *(x1+2) = -2;
35 x2[3] = -3;
36 *(x2+4) = -4;
37 for (i1 = 0; i1 < 6; i1++)
38 printf("%d ", x1[i1]);
39 printf("\n");
40 for (i1 = 0; i1 < 6; i1++)
41 printf("%d ", x2[i1]);
42 printf("\n");
43
44 char *c4; /* 文字列を指す1つのポインタ */
45 // c1 = "test1 data ";
46 // c2 = "test2 data";
47 c3 = "test3 data"; // 使用すべきではない(警告が出力される)
48 c4 = "test4 data"; // 使用すべきではない(警告が出力される)
49 printf("%s (%dバイト)\n", c3, sizeof(c3));
50 printf("%s (%dバイト)\n", c4, sizeof(c4));
51
52 return 0;
53 }