안 쓰던 블로그

C언어 1차원 배열 본문

언어/C, C++

C언어 1차원 배열

proqk 2016. 2. 23. 18:25
반응형

C언어 배열



1. 배열


C언어에는 대표적으로 흔히 쓰이는 자료형 3개가 있다.


 자료형

종류 

메모리 크기 

표현 범위 

 int

정수형 

4 bytes 

-2147483648 ~ 2147483647 

   double 

부동 소수형 

8 bytes 

약 10의 -308승 ~ 10의 308승 

   char 

문자형 

1 bytes 

-128 ~ 127 


이 중에서 int형 double형과 달리 char은 문자를 표현하는 변수이다. 

char형은 독립적으로 이용되기도 하지만 문자열을 조작할 수 있는 배열로서 많이 이용된다.

배열은 한마디로 '변수의 집합'으로 여러개의 데이터를 동시에 저장하고 조작한다.

또한 선언 방식에 따라 1차원을 넘어 2, 3차원의 다차원 배열로 나누어진다.

배열은 후에 적을 포인터 혹은 그 어떤 부분에서도 자주 등장하므로 꼭 알아두어야 할 기초 문법이다.



1
char a[5];
cs


라고 적었을 때 a변수는 5문자를 담을 수 있는 문자열 변수가 된다.

이외에도


1
2
int a[3] -정수형 변수 3개를 담을 수 있는 배열
double a[33] -부동소수형 변수 33개를 담을 수 있는 배열
cs

등이 있다.


2. 1차원 배열

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
int main(void){
    char a[6= "HALLO";
    int i;
 
    for (i = 0; i < 6; i++){
        printf("%c", a[i]); //배열 a를 출력
    }
    
    a[1= 'E'//HALLO의 A를 E로 수정
    
    printf("\n%c\n", a[0]);
    printf("%c\n", a[1]);
    printf("%c\n", a[2]);
    printf("%c\n", a[3]);
    printf("%c\n", a[4]);
    printf("%c\n", a[5]);
 
    return 0;
 
}
 
HALLO
 
H
E
L
L
O
cs

다음은 1차원 배열에서 HELLO를 한자리씩 출력하는 예제다.
먼저 3번째 줄에서 6자리 문자형 a변수를 만들었다.
저렇게 특정한 문자를 지정하여 초기화 할 때는

1
char a[] = "HELLO";
cs


이렇게 하는걸 권장하지만 위의 예시에서는 그냥 자리값을 정했다.

만약 "HELLO"가 아니라 "pneumonoultramicroscopicsilicovolcanoconiosis"(독일어로 진폐증)같은 단어를 써야한다면 일일이 셀 수 있겠는가?

쓸일이 얼마나 있겠냐만은 그럴 땐 간단하게 char a[] = "HELLO"라고 적으면 된다.

빈 대괄호는 문자 자릿수에 맞춰 변수를 만들어준다.


정수배열을 초기화하고 싶다면 아래처럼 하면 된다.


1
2
3
int a[3= {123}; //배열 선언 후 각각 1, 2, 3으로 초기화
int a[3= {0}; //0으로 전체 초기화
int a[] = {123//빈 대괄호는 정수배열에서도 사용가능하다
cs



6번째 줄에서 배열을 출력하는데 for문을 사용했다.


1
2
printf("%c", a);
printf("%c", a[10]);
cs


흔히 이런식으로 출력하면 되지 않겠나 생각이 들수도 있겠지만 에러 메시지창이 당신을 반겨줄 것이다.

자릿수 출력이 아닌 전체 문자 출력은 for문이 배열의 변수갯수만큼 돌아가며 하나씩 출력한다.

지금은 1차원 배열이라 for문을 1개만 사용하지만 2차원에서는 2중 for문을, 3차원에서는 3중 for문을 사용한다.


10번째 줄, 배열의 2번째 값을 'E'로 바꾸었다.

12번째 줄, 변수의 이름은 0부터 시작한다. 

그러므로 'H'를 출력하고 싶다면 a[0]을 출력하면 된다.





반응형

'언어 > C, C++' 카테고리의 다른 글

C언어 구조체  (0) 2016.02.23
C언어 3차원 배열과 성적의 총점 구하기 예제  (0) 2016.02.23
C언어 2차원 배열과 성적의 총점 구하기 예제  (0) 2016.02.23
C언어 연산자  (0) 2016.02.23
C언어 배열 초기화  (0) 2016.02.22
Comments