프로그래밍/C++

[C++] 2차원 배열, 배열 포인터, 배열 초기화, 배열 매개변수

FORHAPPy 2021. 9. 24. 14:57

2차원 배열 기본형태

배열은 기본적으로 n차원까지 가능하다. 보통은 너무 복잡해서 3차원도 잘 안쓴다.

int iArr2D[Y][X] = {1,2,3,4,5,6};

Y는 행X는 열을 나타낸다.

int iArr[2][3]; --> 3칸짜리 배열이 2개 즉, iArr[3]이 2개 (2행3열)
바깥이 행에 접근한다.

맨 아래의 그림을 참고하면 이해하기 쉽다.

 

 

 

 

3차원 배열 기본형태

 

 

배열의 초기화

아래 그림처럼 2가지 방법으로 초기화가 가능하다.

 

 

이중 for문을 사용하여 초기화 진행

 

 

 

2차원 배열의 포인터

 

1차원 배열포인터

int* ptr = iArr2D

 

2차원 배열포인터

자료형(*변수명)[열의 크기]

int(*ptr2D)[3] = iArr2D;
더보기

2차원배열의 원소는 1차원 배열을 뜻한다.

따라서 2차원배열에서 역참조를 하면 그 값을 저장하는게 아닌 1차원배열의 주소를 가지고잇다.

절대 2차원배열에 역참조 를 해서 값을 건드리는게 아니다.

즉, *(iArr2d + 1) 은 주솟값이라는 얘기다. (iArr2d 가 2차원 배열일 경우)

2차원 배열 포인터 는 열의 크기를 꼭 써야한다.

 

 

<배열에서 5라는 요솟값을 가리키는 5가지 방법>

 

 

 

 

 

2차원 배열의 크기

차례대로

2차원 배열의 전체크기는 24

2차원 배열의 0행의 크기는 12

2차원 배열의 0행0열 의 첫 요소의 크기는 4

 

 

 

헷갈림 주의

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[그림참조]http://tcpschool.com/c/c_pointerArray_arrayPointer

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com