코딩하렴

C언어 배열과 주소 표현식에 대해 아라보자

by 으렴

배열 Array : 동일한 데이터 형식을 메모리상에 순차적으로 확보하여 사용하는 것.

 

배열의 특징

 - 효율적 데이터의 사용을 위한 방법.

 - 같은 타입만 사용이 가능.

 - 순차적으로 주소 값이 선언이 된다. 첫 번째 주소 값을 알게 되면 모든 주소 값을 알수 있다.

 - 메모리 관리에 유리

 - 일괄처리 가능

 - 선택된 한 위치를 중심으로 얼마나 떨어져 있는지가 중요.

 - 메모리 추가 삭제가 용이하지 않음.

 

다차원배열도 존재

int a[5];가 □ <이렇게 생긴 일차원 배열이라면

 

int b[4][2];는 □<

2줄·4칸 짜리 □< 다차원 배열.

 

int   b[2][2][2];는 □<□<□<

2면 2줄·2칸 짜리 □<□<□< 다차원 배열.

 

주소 표현식

 

1. 주소/값 구별

선언한 것을 기준으로 [](첨자), * 개수가 부족하다? → address

선언한 것을 기준으로 [](첨자), * 개수가 동일하다? → value

예를들어, int a[2][2];

주소 : a, *a

값 : **a, *a[0], a[0][0]

 

2. [], * 개수가 부족해지면 1차원주소, 2차원주소, 3차원주소 이렇게 간다.

 

3. 주소 연산 가능하다.

1차원주소 + 1(상수)  한 요소의 size

EX. int a[4]; //첫 주소가 100번지라고 가정.

a(1차원주소=100) + 1(4byte) = 104번지

 

 - 2차원주소+1  한 행의 size

 - 3차원주소+1  한 면의 size

 

4. [ ] ↔ * 바꿔서 표현이 가능하다.

원래의미는 그대로이고 표현만 바뀌는 것이다.

* (pointer) : 주소(값)을 저장하는 변수.

 

까먹을 수 있으니 잘 기억하도록

사이트의 정보

코딩하렴

으렴

활동하기