수업 일기장 #배열 , 다차원 배열
#include <stdio.h>
int main() {
배열 (Array)
int iArr[5] = { 0 } ;
배열 요소 (Array Elements)
색인(Index)
iArr[1] = 100;
printf("iArr[1]: %d\n" , iArr[1]) ; - iArr[1] : 100 이란 값이 나옴
for (int i = 0; i < 5; ++i) {
pintf("iArr[%d]: %d (%p)\n", i, iArr[i], &iArr[i]);
주소를 불러올때는 &를 사용 출력 시 %p 단, 배열의 주소를 불러올때는 %p(8진수)만 적고 &는 안적어도 가능
}
iArr 를 sizeof 시 자료형 int 이므로 4Byte 씩 5칸이므로 20Byte인걸 알 수 있다.
배열은 자료형, 크기에 따라서 사이즈가 다르다.
배열 대입은 결과값이 리트럴 상수인 경우만 가능하다.
int iArrLen = sizeof(iArr) / sizeof(iArr[0]); 첫번째 요소를 봄
printf("iArr Length : %d\n", iArrLen); 배열의 전체 길이를 표시 해줌
---------------------
다차원 배열(Mulit-Dimensions Array)
2차원배열
자료형 배열이름[][] 말 그대로 배열이 늘어날수록 차원이 늘어난다.
int iArr2D[2][3] = {
[종][횡] Row, Column(Col)
배열은 초기화 시 크기를 선언할 때 횡(가로)는 생략이 가능하지만
종(세로)는 생략이 불가능하다.
그리고 직관적인 초기화를 지원한다.
{ 0 , 1, 3 },
{ 4, 5, 7 )
};
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
printf("iArr2D[%d][%d]: %d (%p)\n", i, j, iArr2D[i][j], &iArr2D[i][j];
}
}
printf("iArr2D Address %p\n", iArr2D);
printf("iArr2D[0][0] Address : %p\n", &iArr2D[0][0]);