C配列
C 配列
このチュートリアルでは、配列の操作について学習します。例の助けを借りて、配列の要素を宣言、初期化、およびアクセスする方法を学びます。
<図>
配列は、複数の値を格納できる変数です。たとえば、100 個の整数を格納する場合は、そのための配列を作成できます。
int data[100];
配列を宣言する方法
dataType arrayName[arraySize];
例
float mark[5];
ここで、配列 mark を宣言しました 、浮動小数点型。そのサイズは 5 です。つまり、5 つの浮動小数点値を保持できます。
一度宣言すると、配列のサイズと型は変更できないことに注意してください。
配列要素へのアクセス
インデックスによって配列の要素にアクセスできます。
配列 mark を宣言したとします。 上記のように。最初の要素は mark[0] です 、2 番目の要素は mark[1] です など。
<図>
いくつかの基調講演 :
- 配列の最初のインデックスは 1 ではなく 0 です。この例では、mark[0] です。 は最初の要素です。
- 配列のサイズが n の場合 、最後の要素
n-1
にアクセスするには インデックスが使用されます。この例では、mark[4] mark[0]
の開始アドレスを想定します。 2120d です .次に、mark[1]
のアドレス 2124d になります .同様に、mark[2]
のアドレス 2128d になります 等々。
これはfloat
のサイズが は 4 バイトです。
配列を初期化する方法
宣言中に配列を初期化することは可能です。たとえば、
int mark[5] = {19, 10, 8, 17, 9};
このように配列を初期化することもできます。
int mark[] = {19, 10, 8, 17, 9};
ここでは、サイズを指定していません。ただし、5 つの要素で初期化しているため、コンパイラはそのサイズが 5 であることを認識しています。
<図>
ここで、
mark[0] is equal to 19 mark[1] is equal to 10 mark[2] is equal to 8 mark[3] is equal to 17 mark[4] is equal to 9
配列要素の値を変更
int mark[5] = {19, 10, 8, 17, 9}
// make the value of the third element to -1
mark[2] = -1;
// make the value of the fifth element to 0
mark[4] = 0;
入力および出力配列要素
ユーザーからの入力を受け取り、それを配列要素に格納する方法は次のとおりです。
// take input and store it in the 3rd element
scanf("%d", &mark[2]);
// take input and store it in the ith element
scanf("%d", &mark[i-1]);
配列の個々の要素を出力する方法は次のとおりです。
// print the first element of the array
printf("%d", mark[0]);
// print the third element of the array
printf("%d", mark[2]);
// print ith element of the array
printf("%d", mark[i-1]);
例 1:配列の入出力
// Program to take 5 values from the user and store them in an array
// Print the elements stored in the array
#include <stdio.h>
int main() {
int values[5];
printf("Enter 5 integers: ");
// taking input and storing it in an array
for(int i = 0; i < 5; ++i) {
scanf("%d", &values[i]);
}
printf("Displaying integers: ");
// printing elements of an array
for(int i = 0; i < 5; ++i) {
printf("%d\n", values[i]);
}
return 0;
}
出力
Enter 5 integers: 1 -3 34 0 3 Displaying integers: 1 -3 34 0 3
ここでは、for
を使用しています。 ループして、ユーザーから 5 つの入力を取得し、それらを配列に格納します。次に、別の for
を使用して ループすると、これらの要素が画面に表示されます。
例 2:平均を計算する
// Program to find the average of n numbers using arrays
#include <stdio.h>
int main()
{
int marks[10], i, n, sum = 0, average;
printf("Enter number of elements: ");
scanf("%d", &n);
for(i=0; i<n; ++i)
{
printf("Enter number%d: ",i+1);
scanf("%d", &marks[i]);
// adding integers entered by the user to the sum variable
sum += marks[i];
}
average = sum/n;
printf("Average = %d", average);
return 0;
}
出力
Enter n: 5 Enter number1: 45 Enter number2: 35 Enter number3: 38 Enter number4: 31 Enter number5: 49 Average = 39
ここでは、n の平均を計算しました。 ユーザーが入力した数字。
範囲外の要素にアクセスしてください!
10 要素の配列を宣言したとします。たとえば、
int testArray[10];
testArray[0]
から配列要素にアクセスできます testArray[9]
へ .
testArray[12]
にアクセスしようとするとします。 .要素は利用できません。これにより、予期しない出力 (未定義の動作) が発生する可能性があります。エラーが発生する場合もあれば、プログラムが正しく実行される場合もあります。
したがって、境界の外にある配列の要素には絶対にアクセスしないでください。
多次元配列
このチュートリアルでは、配列について学習しました。これらの配列は 1 次元配列と呼ばれます。
次のチュートリアルでは、多次元配列 (配列の配列) について学習します。
C言語