프로그래밍과 잡담

[C언어] 기초 4 본문

프로그래밍/C,C++, Win32Api

[C언어] 기초 4

크레온 2009. 3. 11. 16:58
배열

열. 영어로는 array...

배열의 사용법은 간단하다.

int a[10]; 이렇게 하면 배열이 생성된다.

배열을 사용하는 이유는

int a int b int c int d 이렇게 긴거를 생성할려면 이름 지어야하고 만들어야 하니까

귀찮잖아.

그래서 만든게 배열이다 .

배열은 메모리 상에 이어져서 만들어진다..

뭔 말인가 하면





위에 그림 보면 0x00001이
a[0]이다 그다음에 0x00002는  a[1]이고  메모리상에 일자로 되어 있다는거다.

배열이란 데이터형이 묶여있는 형태를 보고 배열이라 한다.

배열의 이름은  즉 위에서 쓴 a 는 배열의 첫번째 주소값을 가지고 있다. 
a 라는 이름에는 0x00001을 가지고 있는 뜻이다.

나중에 포인터에서 설명..

배열의 초기화

int a[10];

a[0] = 0;
a[1] = 0;
....
 a[9] =0;


이런식으로  배열을 초기화 할 수도 있고..

처음부터 초기화 할 수 도 있다..

int a[10] = {0, 1,2,3,....0};
이런식으로도 할 수 있다.

int a[] = {0,0,0};

이런식으로도 사용할 수 있다.

a의 길이는 3이 된다.
a[3]이 된다고..


모조리 0(zero)으로 초기화 하는 법
int a[10]={0,};
이렇게 하면 배열의 모든 값은 0으로 초기화된다.

모든 변수는  초기화를 안해주면 처음에 가지고 있는 값은 쓰레기값(garbage value)을 가지고
있다.. 고로 초기화를 안해주고 사용하면 이상한 값이 나온다.


2차원 배열

위에 써 놓은게 1차원 배열이다.

2차원 배열은 그것도 쓰기는 쉽다.

int arrray[2][1];

이렇게 하면 2차원이다.

2차원 배열은 1차원 배열이 두개 뭉쳐있는거다..

array [세로길이] [가로길이]
예를 들어서
int array[3][4] 를 하면

[][][][]
[][][][]
[][][][]

이런식의 배열이 생긴다..

초기화 방법은

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

이런식으로 하거나 아니면 일일이 써서 초기화를 해도 된다..

array[0][0] = 1  이런식으로

그리고 이런식으로도 가능하다.

int array[][2] = {   {3, 4} ,   {5,  6} ,  {7 , 8}  };

그리고 초기화 할때 왠만하면  위에 처럼 하지마라..

보기가 드럽다..

int array[2][2]  = {
    {3, 4},              
    {5, 6}               
};                         

이런식으로 하는게 보기가 좋다.

그리고 2차원 배열은 이름이 그 주소를 의미하지 않는다..

1차원 배열일 경우에만 해당하는거다.


다차원 배열
 
다차원 배열의 사용법은 2차원 배열 사용법과 동일 하다..

다만 다차원 배열은 잘 사용안한다.

int array[1][2][3]; 이런식으로 사용한다.

이건 3차원이다 한면에 2열 3행의 배열을 생성하는거다. 

공책에 그리면 이해가 빠르다.

4차원은 공간 개념으로 이해하는게 좋은데 거의 안쓰므로 넘어간다..

끝..

다음은 재미있는 포인터...

-----------------
부족한 부분이 뭔가 이상한 부분이 있으면 댓글을 남겨 주세요~

반응형

'프로그래밍 > C,C++, Win32Api' 카테고리의 다른 글

[C언어] 기초 5-1  (0) 2009.03.11
[C언어] 기초 5  (0) 2009.03.11
[C언어] 기초 3  (0) 2009.03.11
[C언어] 기초 2-1  (0) 2009.03.11
[C언어]기초2  (0) 2009.03.11
Comments