노는게 제일 좋습니다.

10회차 : 배열 본문

C

10회차 : 배열

노는게 제일 좋습니다. 2017. 2. 11. 17:31

참고 자료 http://soen.kr/


1. 정의

동일한 타입을 가지는 변수들의 집합

int a[5];와 같이 선언하며, 이 경우 int형 변수 다섯 개를 메모리상에 연속적으로 만든다.

배열에 들어있는 각각의 변수들을 요소(엘리먼트)라고 한다. a[0]부터 시작한다.

배열 선언시 크기는 상수로 줘야한다. 변수 몇 개를 만들어야될지 알아야되니까..

* 언어는 배열의 범위를 체크해주지 않는다. int a[5]로 선언해놓고 실수로 a[5]를 참조해도 값이 읽히긴 읽힌다.

그게 내가 원하는게 아니라서 그렇지.. (쓰레기값)


2. 다차원배열

int a[5][2];

와 같이 만든다.


3. 배열 시작지점 포인터

int num[5]; 과 같이 배열이 만들어졌다고 하자.

이 때, num 이 갖는 값은 배열num이 시작되는 지점의 주소이다. 즉, 배열의 이름 num은 배열 시작지점을 가리키는 포인터 상수이다.

다시 말하면 num의 값은 $num[0]과 같다.


4. '='문자의 쓰임새.

int i=3; 에서의 =는 변수 이름과 초기값을 구별하기 위해 넣은 punctuator이다.

반면, a=4; 에서의 =는 대입연산자이다.


5. 배열의 선언시 초기화

int a[5]={1,2,3,4,5};

* 4번에서 말했다시피, 여기서 =는 대입하는 연산자가 아니다.


int b[5]={1,2}; // b[2]~b[4]는 0

만약 초기값을 약속된 배열크기보다 작게 주면, 나머지 뒤의 것들은 0으로 초기화한다.


int b[]={1,2,3,4,5};

배열 크기를 생략하면, 입력된 초기값들에 맞춰서 크기가 결정된다.


int c[2][3]={1,2,3,4,5,6}; 또는 int c[2][3]={{1,2,3},{4,5,6}};

2차원 배열은 다음과 같이 한다. 다차원 배열도 마찬가지로 초기값을 생략하면 0으로 초기화된다.



'C' 카테고리의 다른 글

12회차 : void형 포인터  (0) 2017.02.18
11회차 : 포인터 연산  (0) 2017.02.18
9회차 : 표준함수  (0) 2017.02.11
8회차 : 기억부류(스토리지 클래스)  (0) 2017.02.08
7회차 : 함수 호출 방식, 전처리기  (0) 2017.02.07
Comments