관리 메뉴

IT창고

C 배열(Array) 본문

프로그래밍/C

C 배열(Array)

방구석여포 2018. 5. 29. 17:10

C언어의 배열에 대해 알아보겠습니다.

배열(Array)은 같은타입의 여러 공간을 하나의 변수로 다루는것을 말합니다. 만들어지는 공간은 연속이 되며 []대괄호를 사용합니다.

ex) int iArr[7] = {0, };


생성된 배열에서 일정한 저장공간이 있는데 이를 배열의 요소라고 하며 index라고 부릅니다. index는 순서라고도 할수있으며 모든 프로그래밍 언어에서 index는 0부터 시작합니다.

------------------------------------------

int iNum =0;


scanf("%d", &iNum);   // 공간에 입력된 값을 저장

printf("%d", iNum);     // 공간의 값을 출력하는데 사용

iNum =10;      // 공간에 값을 대입


scanf("%d", &iArr[0]);   // 공간에 입력된 값을 저장

printf("%d", iArr[0]);     // 공간의 값을 출력하는데 사용

iArr[0] =10;              // 공간에 값을 대입

------------------------------------------
위의 코드의 배열은 일반변수를 사용했을때와 같습니다.


배열 선언 및 초기화에 대해 알아보겠습니다.

int iArr1[5]; //각 공간(5개의 정수)는 초기화되지 않음 쓰레기값/

int iArr2[5]={1,2,3,4,5}; //배열 생성과 동시에 초기화 (순서대로)

int iArr3[5] = {1,2};  //뒤에 나머지 공간 3개는 자동으로 0이 대입

int iArr4[5] = {0,}; //표준 초기화

int iArr5[] = {10,20,30,40,50}; //자동으로 길이가 5가 된다(컴파일러가 판단)


위와 같이 초기화가 가능하며 iArr1[0] = 10; , iArr1[1] = 20; ,iArr1[2] = 30; 처럼 직접 배열의 요소에 접근이 가능합니다.


인자들이 많을 경우 하나씩 변수를 선언하는것보다 배열을 사용할 경우 코드가 간단해집니다.


Tip

문자열 출력함수에 대해 알아보겠습니다.


문자열 관련 함수를 사용하기 위해서는 string.h 헤더파일이 있어야만 합니다.

함수로 strcpy , puts, gets, fgets가 있습니다. 이 중에 strcpy, gets, fgets함수는 보안에 취약(BOF)한 함수입니다. 특별할때를 제외하고는 사용을 자제하는것이 좋습니다. gets 함수는 scanf함수와 같이 입력받는 함수인데 enter를 누르기 전까지 스페이스를 입력해도 모든 인자를 받아 출력합니다.


다차원배열에 대해 알아보겠습니다.

다차원배열이지만 기본적으로 2차원배열까지의 사용을 추천합니다. 3차원 이상부터는 너무나도 복잡해지기 때문입니다.

사용방법은 배열에서 int iArr[][][]로 []를 추가하면 됩니다.

ex) int iArr[2][3] = {0, };       //2행 3열     -> 2중 for문의 i,j 순서와 동일합니다.


2차원 배열은 그림은 2차원으로 표현하지만 실제 생성되는 공간은 1차원(가로방향)입니다.



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

C 구조체(Struct)  (0) 2018.06.04
C 포인터(Pointer)  (0) 2018.06.02
C 함수 연습문제  (0) 2018.05.24
C Function (함수)  (0) 2018.05.24
C 반복문 연습문제  (0) 2018.05.23
Comments