배열(Array)= 동일한 타입을 가지는 자료들의 집합.
타입 배열명[크기][크기]...;
타입: 배열이 어떤 값들의 집한인가.int형인가. 유도형인가. 사용자가 만든 타입인가..
배열명: 배열도 변수. 이름이 있어야함.
크기: 요소의 개수가 몇개인가를 [ ] 안에 정수 상수로 지정. 크기 지정이 하나면 1차원 배열. 두 개 이상이면 다차원배열.
할당된 배열에서 요소를 참조할 때는 [ ]와 첨자(Index)를 사용
첨자(Index)= 요소가 그 배열의 몇 번째에 있는지를 나타내는 순서값.
배열의 특징.
1. 배열 요소의 번호인 첨자는 항상 0부터 시작(Zero Base).
2. 배열이 차지하는 총 메모리양 = 배열의 크기 x 배열 요소의 크기, 즉, sizeof(타입) x 크기.
3. 배열을 선언할 때, 크기값은 반드시 상수.
4. C언어는 배열의 범위를 점검하지 않음.
배열명은 포인터 상수.
배열명이 단독으로 사용되면 배열의 시작번지값을 가지는 포인터 상수이다.
배열의 내부적처리.
C는 내부적으로 1차원 배열만 지원. 다차원배열은 1차원 배열의 확장. C에는 2차원 배열이라는 것이 없음.
배열을 구성하는 배열 요소의 타입에 제한이 없음.
배열도 유도형 타입의 일종.
배열 그 자체가 배열의 요소가 될 수 있음.즉, 배열끼리 중첩 가능.
부분배열(SubArray)= 배열끼리 중첩되어있을 대 다른 배열에 포합된 배열.
전체배열(모배열)= 부분배열을 배열요소로 가지는 배열.
[ ] 연산자: 첨자 연산을 하는 포인터 연산자.
ptr이 임의의 배열을 가리키는 포인터이고 n이 정수일 때
ptr[n] = *(ptr+n)
쓰레기값= 변수를 선언하면 메모리에 기억공간을 할당하는 것.즉, 데이터를 저장할 수 있는 공간을 확보한다고 생각하면 된다.
그런데 변수선언으로 확보된 메모리 기억공간은 깨끗한 상태가 아니고 어떤 값들이 들어 있게 되는데
이 값을 쓰레기 값이라고 하는 것.
따라서 int num; 으로 변수를 선언하고, num=77; 과 같이 값을 넣어주지 않으면 변수 num에는 쓰레기값이 들어 있게 되는 것이다. 이 쓰레기값은 메모리의 상황에 따라 어떤 값이 있을지 모르는 것이며 사실 이 값은 이전에 메모리를 사용했던 프로그램에서 남겨 놓은 데이터들이다.
메모리는 새로 만든 프로그램만 사용하는 것이 아니고 이전에 실행시켰던 프로그램도 사용했을 것이므로 그 때 메모리에 남아 있던 값이 새로 실행되는 프로그램에서는 쓰레기값이 되는 것이다.
'programTips.Tutorial' 카테고리의 다른 글
C++ (0) | 2012.12.26 |
---|---|
비트 구조체 (0) | 2012.12.26 |
new (0) | 2012.12.26 |
C++ (0) | 2012.12.26 |
객체지향프로그래밍 OOP(Object Oriented Programming) (0) | 2012.12.26 |
[C] 함수 (0) | 2012.12.21 |
[C] 동적메모리할당. (0) | 2012.12.17 |
[C] void형 포인터 (0) | 2012.12.17 |
[C] 포인터 (0) | 2012.12.17 |
유용한 일러스트레이터 shortcut (0) | 2012.09.28 |