36.1シナリオ
整列
配列は同じ資料型の変数を一列に並べる形式である.
反復文を組み合わせると、連続および反復の値を容易に処理できます.
アレイ宣言
リポジトリ名[サイズ];
データ型配列名[サイズ]={値、値、値};
[ ] (대괄호)
を付けてサイズを設定します.{ } (중괄호)
を使用します.#include <stdio.h>
int main()
{
int numArr[10] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 }; // 배열을 생성하고 값 할당
printf("%d\n", numArr[0]); // 11: 배열의 첫 번째(인덱스 0) 요소 출력
printf("%d\n", numArr[5]); // 66: 배열의 여섯 번째(인덱스 5) 요소 출력
printf("%d\n", numArr[9]); // 110: 배열의 열 번째(인덱스 9) 요소 출력
return 0;
}
要素
{ }
と呼ぶ.요소(element)
を使用して各要素のインデックスを指定するだけです.注意)配列宣言と配列インデックス
配列は、宣言時および配列内の要素に近い場合に
[ ] (대괄호)
を使用します.同じ記号を使いますが、別々に考えます.
配列を宣言する場合、
[ ]
は変数が配列であることを示し、サイズはいくらであるかを示し、配列を使用する場合、[ ]
は配列内の要素にアクセスすることを示す.また、要素がゼロの配列は宣言できません.配列は、宣言時に常に1より大きいサイズです.ただし、配列にアクセスすると、インデックスはゼロから始まります.メモリアドレスがゼロから始まるため、配列のインデックスはゼロから始まります.前の配列もポインタなので、インデックスが0から始まると要素アクセスとポインタ演算が一致します.
注)アレイ宣言時の寸法の作成
配列を宣言するときに値を初期化する場合は、配列のサイズを省略できます.
❗初期化しない場合は省略できません.
データ型配列名[]={値、値、値];
int numArr1[] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 }; // 배열의 크기 생략
int numArr2[]; // 컴파일 에러
要素に値を割り当てる
すべての要素0にリセット
[ ]
が割り当てられます.#include <stdio.h>
int main()
{
int numArr[10] = { 0, }; // 배열의 요소를 모두 0으로 초기화
printf("%d\n", numArr[0]); // 0: 배열의 첫 번째(인덱스 0) 요소 출력
printf("%d\n", numArr[5]); // 0: 배열의 여섯 번째(인덱스 5) 요소 출력
printf("%d\n", numArr[9]); // 0: 배열의 열 번째(인덱스 9) 요소 출력
return 0;
}
配列内の要素に値を割り当てる
配列は
{ 0, }
で、要素に近づくと値を割り当てることができます.配列[インデックス]=値;
#include <stdio.h>
int main()
{
int numArr[10]; // 크기가 10인 배열 선언
numArr[0] = 11; // 인덱스가 0인 배열의 요소에 값 할당
numArr[1] = 22; // 인덱스가 1인 배열의 요소에 값 할당
numArr[2] = 33; // 인덱스가 2인 배열의 요소에 값 할당
numArr[3] = 44; // 인덱스가 3인 배열의 요소에 값 할당
numArr[4] = 55; // 인덱스가 4인 배열의 요소에 값 할당
numArr[5] = 66; // 인덱스가 5인 배열의 요소에 값 할당
numArr[6] = 77; // 인덱스가 6인 배열의 요소에 값 할당
numArr[7] = 88; // 인덱스가 7인 배열의 요소에 값 할당
numArr[8] = 99; // 인덱스가 8인 배열의 요소에 값 할당
numArr[9] = 110; // 인덱스가 9인 배열의 요소에 값 할당
printf("%d\n", numArr[0]); // 11: 배열의 첫 번째(인덱스 0) 요소 출력
printf("%d\n", numArr[5]); // 66: 배열의 여섯 번째(인덱스 5) 요소 출력
printf("%d\n", numArr[9]); // 110: 배열의 열 번째(인덱스 9) 요소 출력
return 0;
}
要素を出力する場合と同様に、
[ ]
にインデックスを指定し、値を割り当てるだけです.配列範囲外のインデックスにアクセスすると、配列ではなく他のメモリ領域にアクセスします.
#include <stdio.h>
int main()
{
int numArr[10] = {11, 22, 33, 44, 55, 66, 77, 88, 99, 110}; // 크기가 10인 배열 선언
printf("%d\n", numArr[-1]); // 음수이므로 잘못된 인덱스
printf("%d\n", numArr[10]); // 배열의 범위를 벗어난 인덱스
printf("%d\n", numArr[20]); // 배열의 범위를 벗어난 인덱스
return 0;
}
/*
실행 결과
-858993460 (쓰레기 값)
-858993460 (쓰레기 값)
13651968 (쓰레기 값)
*/
インデックスを使用して負の値または配列サイズを超えたインデックスを指定しても、コンパイルエラーは発生しません.ただし、実行時にゴミ値が出力されます.
►つまり、アレイではなく他のメモリ領域にアクセスします.
したがって、
ソース
https://dojang.io/mod/page/view.php?id=292
https://dojang.io/mod/page/view.php?id=293
https://dojang.io/mod/page/view.php?id=294
https://dojang.io/mod/page/view.php?id=295
Reference
この問題について(36.1シナリオ), 我々は、より多くの情報をここで見つけました https://velog.io/@shuajjjjj/36.1-배열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol