Taking baby-developer steps

2-2 변수와 상수 - 변수의 선언/초기화/기본적인 자료형/형식지정자/예약어와 식별자 본문

CS 지식/C언어_basic

2-2 변수와 상수 - 변수의 선언/초기화/기본적인 자료형/형식지정자/예약어와 식별자

Surin Lee 2021. 3. 16. 21:50

변수와 상수의 개념

변수(Variable)는 변할 수 있는 데이터이다. 들어가는 값이 바뀔 수 있다.

상수(Constant)는 변하지 않는 데이터이다. 한번 작성되면 바뀌지 않는다.

 

변수의 선언

int a; #변수 선언

int a=7; #변수 선언과 초기값 설정

 변수를 선언할 때는 자료형과 변수명을 입력한다. 원하는 경우 초기값을 적용할 수 있다.(초기화 되지 않은 변수는 쓰레기 값이 들어간다) 가장 많이 사용되는 변수는 정수형(Integer) 변수이다.

 

변수의 초기화와 쓰레기값

#초기화 되지 않은 변수에 쓰레기 값이 들어가 오류가 출력되는 경우

#include <stdio.h>
int main(void){
	int a; #초기화 되지 않은 변수 선언
	printf("The number is %d.\n",a);
    system("pause");
	return 0;
}

초기화 되지 않은 변수는 쓰레기 값이 들어간다. Visual Studio는 기본적으로 초기화 되지 않은 변수를 감지하고 오류를 출력한다.

 

+정적변수(기본적으론, "main 함수 바깥쪽에 선언된 변수"라고 이해하면 된다.)로 선언된 것은 기본적으로 0으로 값이 초기화 된다. 정적변수가 아닌 수를 0으로 초기화 하려면 값을 일일이 넣어주어야 한다.(따라서, 정적변수로 선언하는게 편할때가 있다.)

#include <stdio.h>

int a; #정적변수(main 함수 바깥쪽에 선언된 변수)로 선언

int main(void){
	printf("The number is %d.\n", a);
    system("pause");
	return 0;
}

=> output : The number is 0. (정적변수는 0으로 초기화 되기 때문)

 

기본적인 자료형(+형식 지정자)

	printf("The number is %d.\n",a);

에서, '%d'는 형식지정자에 해당한다. 형식지정자는 값이 어디에 출력될 지를 지정하기 위해서 사용한다.

기본적인 자료형과 그에 따른 형식 지정자는 다음과 같다.

 

int : 일반적으로 정수형을 표현(약 -20억 ~ +20억까지)할 때 사용한다. 작은 정수도 일반적으로 int형을 사용한다. 4바이트(4B)만큼 메모리 공간을 차지한다.

long long : 천억, 조 단위 같이 Int형 보다 큰 정수형을 표현할 때 사용한다. 총 8바이트(8B)만큼의 메모리 공간을 차지한다.

double : 일반적인 실수형을 표현할 때 사용한다.

string : 문자열을 표현할 때 사용한다. 기본(전통)적인 C언어의 문법엔 포함되지 않는다(C++)에서 공부할 내용이다.

bool : 참/거짓을 표현할 때 사용한다. 1bit(1비트)만큼의 공간밖에 차지하지 않는다. [참고: 1B = 8bit]

char : 한 문자를 표현할 대 사용한다. 1B(=8bit)만큼의 메모리 공간을 차지한다.

      +즉,char형은 bool형에 비해 8배 더 넓은 공간을 논리적으로 표현 할 수 있다.

-> 실제로 메모리 공간을 차지하는 영역은, 프로그래밍 언어나 프로그래밍 실행환경에 따라 조금씩 차이가 있을 수 있음에 유의하자.

 

예약어와 식별자

 

식별자(identifier)란 변수나 함수 등의 고유한 이름을 지정할 때 사용한다.

이때, C언어 문법으로 정해진 예약어(기본적인 자료형들도 포함됨)는 식별자로 사용할 수 없다.

ex) string, for, void, bool, if, while, char, return, double 등

 

Comments