수업 일기장

수업 일기장 #배열 , 다차원 배열

빅토리아레몬탄산수 2021. 1. 18. 13:46

#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]);