2012. 4. 13. 12:31
Study/Pointer by C
-챕터2. 1차원 배열과 포인터
1. 1차원 배열과 초기화
1.1 정의
형태 : 자료형 배열명[첨자] ex> int iArray[10]
설명 : 선언된 자료형을 기본 단위로 하여 첨자가 나타내는 수 만큼 변수를 저장할 수 있는 집합.
1.2. 배열 첨자
C에서 배열첨자는 0으로 시작.
실제로 사용할 수 있는 첨자는 선언 시의 '첨자-1'
ex> int iArray[10] 의 경우 : 선언시 첨자 10, 실제 사용가능 첨자의 범위 0~9(10개)
1.3. 배열의 초기화
배열 또한 변수(데이터를 저장 할 수 있는 공간)이기 때문에 사용하기에 앞서 초기화(쓰레기 값 삭제 혹은 사용할 데이터 입력)가 필요하다.
방법 3가지
1) Array[0] = 0; Array[1]=0; ........ Array[선언첨자-1]=0; 배열 크기에 따라 코드 수가 많아지므로 특별한 경우가 아닌이상 사용 X
2) for(int i=0 ; i<선언첨자 ; i++)
Array[i]=0; i의 연산에 따른 결과(패턴 발생)를 초기화 데이터로 적용시키지 않는한 여전히 쓸데없는 부하 발생
3) 선언시 바로 초기화 ex> int iArray[10]={0}, int iArray[10]={}; 단순 초기화 용도로 가장 적절한 방법
2. 첨자 생략
int iArray[3]={1,2,3,4};
위 배열은 선언부 첨자를 3개로 정하고 초기치 갯수를 4개를 넣었다. 경고는 나오지만 에러는 아니다. 하지만 마지막 4번째 멤버는 접근이 불가능 하다.
이러한 실수를 방지하기 위한 방법이 첨자 생량
ex> int iArray[]={1,2,3,4};
위 코드를 컴파일러가 만나면 초기치의 개수를 먼저 세고 이를 첨자에 반영함.
3. 다차원 배열
개념적으로는 n차원 배열이 추가될때마다 n개의 축을 가지고 측정할 수 있지만 보통 많아봐야 3차원 배열까지만 사용.
실제적으로는 메모리 상에 선형으로 주욱 연결되어 있다.
형태 : 자료형 배열명[첨자][첨자]....[N] => N차원 배열의 예
3.1 초기화 방법
보통은 1.3의 2)나 3)의 방법으로 초기화를 한다.
1. 1차원 배열과 초기화
1.1 정의
형태 : 자료형 배열명[첨자] ex> int iArray[10]
설명 : 선언된 자료형을 기본 단위로 하여 첨자가 나타내는 수 만큼 변수를 저장할 수 있는 집합.
1.2. 배열 첨자
C에서 배열첨자는 0으로 시작.
실제로 사용할 수 있는 첨자는 선언 시의 '첨자-1'
ex> int iArray[10] 의 경우 : 선언시 첨자 10, 실제 사용가능 첨자의 범위 0~9(10개)
1.3. 배열의 초기화
배열 또한 변수(데이터를 저장 할 수 있는 공간)이기 때문에 사용하기에 앞서 초기화(쓰레기 값 삭제 혹은 사용할 데이터 입력)가 필요하다.
방법 3가지
1) Array[0] = 0; Array[1]=0; ........ Array[선언첨자-1]=0; 배열 크기에 따라 코드 수가 많아지므로 특별한 경우가 아닌이상 사용 X
2) for(int i=0 ; i<선언첨자 ; i++)
Array[i]=0; i의 연산에 따른 결과(패턴 발생)를 초기화 데이터로 적용시키지 않는한 여전히 쓸데없는 부하 발생
3) 선언시 바로 초기화 ex> int iArray[10]={0}, int iArray[10]={}; 단순 초기화 용도로 가장 적절한 방법
2. 첨자 생략
int iArray[3]={1,2,3,4};
위 배열은 선언부 첨자를 3개로 정하고 초기치 갯수를 4개를 넣었다. 경고는 나오지만 에러는 아니다. 하지만 마지막 4번째 멤버는 접근이 불가능 하다.
이러한 실수를 방지하기 위한 방법이 첨자 생량
ex> int iArray[]={1,2,3,4};
위 코드를 컴파일러가 만나면 초기치의 개수를 먼저 세고 이를 첨자에 반영함.
3. 다차원 배열
개념적으로는 n차원 배열이 추가될때마다 n개의 축을 가지고 측정할 수 있지만 보통 많아봐야 3차원 배열까지만 사용.
실제적으로는 메모리 상에 선형으로 주욱 연결되어 있다.
형태 : 자료형 배열명[첨자][첨자]....[N] => N차원 배열의 예
3.1 초기화 방법
보통은 1.3의 2)나 3)의 방법으로 초기화를 한다.
'Study > Pointer by C' 카테고리의 다른 글
[포인터] 포인터의 기초 (0) | 2012.04.06 |
---|---|
[포인터] 시작하며... (0) | 2012.04.06 |