3장 - C언어 변수(variable)
변수란?
- 사전적으로 상황에 따라 변하는 값을 뜻합니다.
- 프로그램에서는 특정 데이터를 저장하는 공간이라고 할 수 있습니다.
먼저 아래의 소스코드를 보도록 하겠습니다.
실행 결과는 화면에, 10이 두 번 출력됩니다. 저번 포스팅에서 학습했듯이 line.9 - 10은 출력문입니다.
두 출력문 모두 %d 첨자를 이용해서 정수형 데이터를 출력하고 있습니다.
그러나 아래는 정수형 값이 아닌 문자가 씌여져 있지요?
예리한 분들은 아시겠지만, 단일문자나 문자열을 출력할 땐 따옴표(')와 쌍따옴표(")를 씁니다.
하지만 저렇게 따옴표 없이 입력하게 될 경우, 해당 이름의 변수를 의미하는 것입니다.
line.5 를 보시면, int number; 라고 적혀있습니다. 이것이 의미하는 것은
int는 변수의 데이터 타입, number는 변수의 이름입니다.
다시 말해서 정수형 데이터를 저장할 수 있는 number라는 변수를 선언한 것입니다.
line.7 에서는 정수 값 10을 number의 변수에 저장하고 있습니다. 즉 정수형으로 선언한 number라는 변수는
지금부터 10이라는 데이터를 가지게 되는 것이지요.
|
즉, 변수는 특정 데이터를 저장하는 공간이라고 말할 수 있습니다.
int 외에도 여러가지 데이터 타입의 변수를 선언할 수 있습니다. 아래 표를 참고하세요
종류 |
선언부 |
첨자 |
크기 |
수 표현 범위 |
정수형 |
int |
%d |
4 byte |
2-31 ~ 231-1 |
문자형 |
char |
%c |
1 byte |
-128 ~ 127 |
실수형 |
float |
%f |
4 byte |
3.4*10-38 ~ 3.4*1038 |
실수형 |
double |
%lf |
8 byte |
1.7*10-308 ~ 1.7*10308 |
위에는 기본적인 것들을 정리해놓은 것이고, 필요하다면 다른 것들도 찾아보시길 권합니다.
변수의 크기는 사용 중인 컴퓨터가 몇 bit 냐에 따라 다르기 때문에 참고만 하시길 바랍니다.
보통 데이터 타입들은 마지막 비트를 부호비트로 사용합니다. char형 변수를 예로 들어보면
부호비트 |
데이터 |
데이터 |
데이터 |
데이터 |
데이터 |
데이터 |
데이터 |
부호비트를 제외하고 남는 비트는 7개라, 표현할 수 있는 수의 범위가 위의 표 처럼 되는 것입니다.
하지만 프로그래밍 중에, 다음과 같은 상황에 놓여있을 수 있습니다.
- 음수를 표현할 필요가 없다. ( 음수를 표현하면 안된다. )
- 더 많은 양수를 표현하고 싶다.
다음 소스코드를 참고하시길 바랍니다.
|
unsigned int형 변수 unnumber와 int형 변수 number를 선언하고, 각각에 정수형 변수의
최대표현 범위의 값을 대입했습니다. 결과는 다음과 같습니다.
|
number를 살펴보면, 자신의 수 표현 범위를 초과했기 때문에(부호비트를 사용) 값이 -로 되어버립니다.
하지만 unsigned 형 변수의 경우는 그 수를 완전히 표현합니다.
unsigned형 데이터 타입이란, 부호비트를 데이터비트로 사용한다는 의미입니다.
정수형 외에도 다른 데이터 타입에도 모두 사용가능합니다.
'프로그래밍 언어들 > C' 카테고리의 다른 글
5장 - C언어 연산자(operators)(1) (0) | 2016.10.24 |
---|---|
4장 - C언어 입력문(scanf()) (0) | 2016.10.20 |
2장 - C언어 출력문 (0) | 2016.10.17 |
1장 - C언어의 구조 (0) | 2016.10.17 |
C언어 2중 포인터를 이용한 스택(stack) (0) | 2015.12.08 |