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) : 주소(값)을 저장하는 변수.
까먹을 수 있으니 잘 기억하도록
'Programming Language > C and Cpp' 카테고리의 다른 글
함수가 덕지덕지 C언어 콘솔 계산기 (0) | 2019.06.03 |
---|---|
C++ 콘솔 급여관리 프로그램(스압) Linked List 사용 (0) | 2019.06.01 |
Single Linked List만들기 (0) | 2019.05.17 |
C언어 배열과 포인터 문제 (0) | 2019.05.17 |
C++ String 구현 해 보기 (0) | 2019.02.21 |
사이트의 정보
코딩하렴
으렴