노는게 제일 좋습니다.
10회차 : 배열 본문
참고 자료 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 |