Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. # 配列について
  2.  
  3. ## 1. 配列とは
  4.  
  5. 同じ型の変数を複数宣言し 番号によって管理することで
  6. 複数のデータを一括して取り扱えるようにする仕組み.
  7.  
  8.  
  9. ## 2. 配列の宣言
  10.  
  11. 配列は 次のように宣言します
  12.  
  13. 型名 配列名[要素数];
  14.  
  15. - 型名:
  16. intなど 変数の型と同義. ここで指定した型の変数が要素数の数だけ作られます.
  17.  
  18. - 配列名:
  19. 配列全体の名前のことです. 個々の変数を使う場合 この名前に番号を付けて区別します.
  20.  
  21. - 要素数:
  22. 作られる変数の数のことです. ここで指定した数だけ 指定した型の変数が作られます.
  23. 式などを用いることもできますが 必ず整数でなければいけません.
  24.  
  25. 配列の宣言の例:
  26. ```C
  27. // int型(整数)の変数を64個もつ配列arrayを宣言する
  28. int array[64];
  29. ```
  30.  
  31. ## 3. 配列の宣言後の扱い
  32.  
  33. 配列名に番号を付けることを除けば 普通の変数と全く同じように扱えます. 配列名に番号を付ける際は 次のようにします.
  34.  
  35. 配列名[番号]
  36.  
  37. ここで注意しなければならないのは **番号は0番から始まる** 点です.
  38. 例えば、前節で宣言した100個の要素数を持つ配列の場合
  39. 指定できる番号は 0~99までの100個です. 1~100ではありません.
  40.  
  41. 例3.1 配列arrayの10番目の要素を使う:
  42. ```C
  43. #include <stdio.h>
  44.  
  45. int main(void)
  46. {
  47. int array[100];
  48.  
  49. array[9] = 100; // 0番からなので9が10番目
  50. printf("1:%d\n",array[9]);
  51. array[9]++;
  52. printf("2:%d\n",array[9]);
  53.  
  54. return 0;
  55. }
  56. ```
  57.  
  58. 3.1 実行結果:
  59. ```
  60. 1:100
  61. 2:101
  62. ```
  63.  
  64. ## 4. 配列の初期化
  65.  
  66. 配列も 変数と同じように 初期化するまで中身は不定なため 初期値を代入する必要があります. 基本の書き方は次のとおりです.
  67.  
  68. 型名 配列名[要素数]={0番の数値,1番の数値,2番の数値,・・・n番の数値};
  69.  
  70. {}で囲んだ中に順番に,で区切って数値を並べます. 数値の個数が配列の要素数よりも少ない場合 残りの変数にはすべて0が代入されます.
  71.  
  72. 例4.1 配列を初期化して表示する
  73. ```C
  74. #include <stdio.h>
  75.  
  76. int main(void)
  77. {
  78. int array[10] = {42,79,13};
  79.  
  80. printf("array[0] = %d\n",array[0]);
  81. printf("array[1] = %d\n",array[1]);
  82. printf("array[2] = %d\n",array[2]);
  83. printf("array[3] = %d\n",array[3]);
  84. printf("array[4] = %d\n",array[4]);
  85.  
  86. return 0;
  87. }
  88. ```
  89.  
  90. 4.1 実行結果:
  91. ```
  92. array[0] = 42
  93. array[1] = 79
  94. array[2] = 13
  95. array[3] = 0
  96. array[4] = 0
  97. ```
  98.  
  99. また 要素数を省略して宣言することも可能です. その場合は以下のように書きます.
  100. 例4.2
  101. ```C
  102. #include <stdio.h>
  103.  
  104. int main(void)
  105. {
  106. int array[] = {42,79,13}; // 要素数が省略されている
  107.  
  108. printf("array[0] = %d\n",array[0]);
  109. printf("array[1] = %d\n",array[1]);
  110. printf("array[2] = %d\n",array[2]);
  111.  
  112. return 0;
  113. }
  114. ```
  115.  
  116. 初期値を代入できるなら例4.2のように省略する方が良いでしょう.
  117. また 一度にすべての変数に値を代入できるのは宣言時のみです.
  118.  
  119. array = {42, 79, 13};
  120.  
  121.  
  122. array[10] = {42, 79, 13};
  123.  
  124. のような代入はできません.
  125.  
  126. ## 5. for文と配列
  127. 配列の全要素を表示するために for文のループを使うことが出来ます.
  128. この様な使い方が出来ることこそ 配列の最大の利点です.
  129.  
  130. 例5.1 配列内の要素の数を全て表示する
  131. ```C
  132. #include <stdio.h>
  133.  
  134. int main(void)
  135. {
  136. int array[] = {42,79,13,75,19};
  137. int i;
  138.  
  139. for (i = 0;i < 5;i++) {
  140. printf("array[%d] = %d\n",i,array[i]);
  141. }
  142.  
  143. return 0;
  144. }
  145. ```
  146.  
  147. 5.1 実行結果
  148. ```
  149. array[0] = 42
  150. array[1] = 79
  151. array[2] = 13
  152. array[3] = 75
  153. array[4] = 19
  154. ```
  155.  
  156. 上記5.1を見てわかるとおり **配列の要素番号には変数も使うことができます** .
  157. 変数の値を変化させれば 様々な番号の要素に直接アクセスすることが出来ます.
  158. 配列ではない普通の変数では 5つの要素の表示にはprintf関数が5つ必要ですし
  159. 100個表示するとなれば 100個必要です.
  160. しかし 配列ならfor文の数値を変えるだけで済んでしまいます.
  161. 他にも ループ内の処理を変えることで 全要素に同じ値を代入したり
  162. 全要素に代入された値の平均を求めることも簡単にできます.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement