C언어의 전반적인 개념을 확인해봤으니 이번에는 변수에 대해서 알아봅시다.
프로그램에서 사용되는 기본적인 자료는 변수와 상수가 대표적입니다.
상수는 프로그램에서 값이 고정되어있고 변수는 이름 그대로 값이 변할 수 있습니다.
이 둘은 데이터 타입 (data type), 즉 자료형을 가집니다. 그중 가장 기본을 설명할 겁니다.
변수란 무엇인가?
일단 다들 타자를 입력해서 정수 값을 출력하는 형태로 일을 할 테니 이걸 디폴트로 잡읍시다.
프로그램은 키보드로부터 정수 값이 입력될 때 매번 다를 수 있기에 하나의 공간을 할당하여 특정 순간의 정수 값을 할당된 구역에 저장하는 것으로 처리합니다.
따라서, 새로운 입력이 있으면 정해진 공간의 값은 이전의 입력된 값에서 최근순으로 경신됩니다. 하지만 문제는 기억 공간을 직접 처리하는 것이 불편하다는 겁니다. 그래서 소스 프로그램에서는 이를 대신하여 문자열을 사용하게 되는 거죠.
이 문자열을 변수라고 부릅니다. 변수는 값이 변할 수 있는 가능성이 있으므로 변수의 값을 저장할 수 있는 기억 공간을 필요로 합니다. 가령 num에 할당하여 정수 3000을 처리하고 다음에 4000이 입력되면 이 값을 변수 num에 할당해서 4000을 처리합니다.
이처럼 소스 프로그램에서는 변수 num을 정의해서 데이터를 처리하긴 하지만, 실제로 프로그램이 동작할 때는 기억하는 공간이 별도로 할당되어 데이터가 처리됩니다. 컴파일러가 자동적으로 일을 하는 겁니다.
게다가 여기서 사용 가능한 데이터는 정수, 실수, 문자 등이 존재하고 이것들이 앞서 말했던 데이터 타입 = 자료형입니다. 또 하나의 약속은 변수가 반드시 특정한 자료형과 함께 선언되어야 하고 변수는 선언된 자료형 중의 데이터 값만을 가질 수 있다는 것입니다.
마지막으로 상수는 값이 일정하게 정해진 것을 말합니다. 문자 S, Y처럼 직접적인 값 말이죠.
변수명을 작성하는 방법
종류를 말하기 앞서 하나만 더 체크할게요.
C 언어에서 명칭은 변수명, 기호 정수명, 함수명에 사용되고 이때 사용되는 문자는 다음과 같습니다.
- 사용할 수 있는 문자는 위 도합 63 문자로 제한
- 명칭은 영문 or _으로 시작하며 공백을 포함 X
- 명칭의 길이는 제한이 없고 처음 포함 31자까지 유용
- 예약어를 명칭으로 사용 X, but 포함하는 명칭은 사용 가능
- 대문자와 소문자로 표현한 명칭은 서로 다른 명칭으로 구별
변수의 종류
1. 정수형 변수
정수형 변수는 쉽게 말해 정수 값 중에 어떤 값을 가질 수 있는 변수입니다.
보통의 경우 정수인 변수에 할당되는 값은 2바이트의 기억 공간에 저장됩니다. 따라서 정수 값의 범위를 구해보면 -32.768에서 +32.767(-2^15 ~ +2^15-1)이 됩니다.
정수 값을 가지는 변수를 선언하려면 키워드 int를 사용하면 됩니다.
2. 실수형 변수
실수형 변수는 부동 소수점 값 중에 어떤 값을 가질 수 있는 변수입니다.
실수형 변수에 할당된 부동 소수점의 값은 4바이트 기억 공간에 저장됩니다. 이때 부동 소숫점 값을 저장하는 양식은 부호, 정수, 지수, 소숫점 이하 자릿수인데 어떤 양식을 선택하느냐에 따라서 이진수 값으로 변하여 저장됩니다. 마찬가지로 범위를 구해보면 3.4 * 10^-38 ~ 3.4 * 10^38이 됩니다.
실수 값을 가지는 변수를 선언하려면 키워드 float가 사용됩니다.
3. 문자형 변수
여기서 문자는 사전적 의미와 동일하게 단어를 구성하는 하나의 글자를 의미합니다. apple의 각 스펠링이 문자 인 셈이고 표기는 '와 '사이에 합니다.
'a' 이렇게요.
\로 시작하는 newline 같은 개행 문자도 따옴표 안에 표현해야 합니다.
선언된 변수가 문자 중에 어떤 값을 가질 수 있다면 그것이 문자 변수인 것이고 반드시 하나의 문자 값을 가져야만 합니다. 여기서 할당된 문자는 컴퓨터에서 사용되는 코드(ex. ASCII코드)로 변환되어 1바이트 기억 공간에 저장됩니다. 범위는 -128 ~ + 127(-2^7 ~ + 2^7-1)입니다.
문자값을 가지는 변수를 선언하려면 키워드 char을 사용합니다.
여기까지가 C언어에서 사용되는 기본적인 변수의 종류였습니다. 데이터의 크기에 따라서 다른 자료형들이 있는데 조금 단순화하여 나열하는 것으로 마치겠습니다.
- unsigned int - 양의 정수를 가지는 자료형 변수를 선언 / 기억 공간 : 2바이트 / 범위 : 0 ~ 32.767(0 ~ 2^8-1)
- long - 정수 값을 가지는 자료형 변수를 선언 / 기억 공간 : 4바이트 / 범위 : -2,147,483,648 ~ 2,147,483,295
- unsigned long - 양의 정수를 가지는 자료형 변수를 선언 / 기억 공간 : 4바이트 / 범위 : 0 ~ 4,294,967,295
- double - 부동 소수점 값을 가지는 자료형 변수를 선언 / 기억 공간 : 8바이트 / 범위 : 1.7 * 10^-308 ~ 1.7 * 10^308
- unsigned char - 양의 정수를 가지는 문자형 변수를 선언 / 기억 공간 : 1바이트 / 범위 : 0 ~ 255
'IT > C 언어' 카테고리의 다른 글
C언어 기억 클래스의 종류 4가지 (0) | 2020.08.21 |
---|---|
C언어 입출력 함수 - 버퍼드 입력, 버퍼되지 않는 입력 알아보기 (0) | 2020.08.19 |
C언어 - 함수의 정의와 함수 작성방법 (0) | 2020.08.14 |
C언어 연산자 종류와 우선순위 (왕초보 개념잡기) (0) | 2020.08.13 |
C 언어의 고유한 10가지 특징 (0) | 2020.08.07 |
댓글