본문 바로가기

기타/글보관

(C) 변수

변수

위키백과에서는 변수에 대해 이렇게 말을 한다.

수학에서의 변수: 수학에서 쓰이는 수식에 따라서 변하는 값.

컴퓨터 프로그래밍에서의 변수: 아직 알려지지 않거나 어느 정도까지만 알려져 있는 양이나 정보에 대한 상징적 이름.

 

내가 참고하고 있는 열혈C에서는 값을 저장할 수 있는 메모리 공간에 붙여진 이름, 혹은 메모리 공간 자체.

라고 한다.

 

변수의 뜻을 익혔으니, 이제 프로그래밍에서의 변수를 공부해보자.

 

간단한 예제로 변수를 이용해 데이터를 저장해보자.

num이라는 변수를 선언한 다음 대입 연산자를 이용해 num이라는 변수에 15라는 값을 저장하고,

printf를 이용해 저장한 값을 출력하였다.

 

변수의 선언 및 초기화

위에서 15라고 선언한 변수에 처음 값을 저장하는 것을 '초기화'라고 한다.

초기화 이후에 저장된 값을 변경하는 것은 '대입'이라고 한다.

num변수를 선언한 뒤 num값을 10으로 초기화 한뒤 20으로 대입하고 저장된 변수값을 출력하였다.

 

C에서는 int num=12; 와 같이 변수를 선언함과 동시에 초기화하는 것이 가능하다.

예시를 하나 보자.

num1 변수와 num2 변수를 선언과 동시에 각각 20과 10의 값으로 초기화하고 출력하였다.

 

또 하나 알아야할게 있다.

변수를 선언하고 초기화하지 않으면 흔히 '쓰레기 값'이라는게 저장되는데, 아무런 의미가 없는 값이 저장된다는 것이다.

그래서 변수를 선언해놓고 값을 저장해놓지 않을때, 아래와 같이 선언과 동시에 0으로 초기한 다음 의미 있는 값을

저장하면 된다.

아래는 변수를 선언한 뒤 초기화하지 않아 쓰레기 값이 출력된 모습이다.

 

변수선언의 주의사항

• 순수 C언어에서는 변수선언 시 중괄호의 앞부분에 선언이 되고 그 뒤에 값을 대입해야한다.

물론 순수 C언어가 아닌 내가 쓰고있는 프로그램인 Dev C+와 같이 순수한 C언어가 아닌 C+, C++, C#이라면

어디서 선언하든 상관없다.

 

내가 따로 찾아보니 1999년  ISO/IEC 9899:1999에서 추가한 확장 기능(흔히 C99라고 부른다.)에서

변수의 선언은 더이상 파일 범위나 복합 명령어의 시작에서만 할 필요가 없어졌다.

위키백과에서 찾았다.

 

아래는 순수 C언어에서의 오류 예시이다.

 #include  <stdio.h>
 int main(void)
 {
    int num1;
    num1 = 0 //변수의 선언문이 아니다.
    int num2;  //여기서 컴파일 에러가 발생한다.
    num2 = 0;
    printf("num1: %d, num2: %d", num1, num2);
 }

아래는 C+의 예시이다.

C+에서는 변수의 선언위치에 아무런 제한이 없다.

 

• 변수의 이름은 알파벳, 숫자, 언더바로 구성된다.

• C언어에서는 대소문자를 구분하여, 변수 Num과 변수 num는 다른 변수이다,

 

• 변수의 이름은 숫자로 시작할 수 없으며, 키워드 또한 변수의 이름으로 사용될 수 없다.

C언어에서 정의하고 있는 키워드들.
 auto  _Bool  break  case
 char  _Complex  const  continue
 default  ddo  double  else
 enum  extern  float  for
 goto  if  _Imaginary  return
 restrict  short  signed  sizeof
 static  struct  switch  typedef
 union  unsigned  void  volatile
 while      

위 키워드들은 변수의 이름 뿐만 아니라 함수의 이름으로도 사용이 불가능하다.

자세한건 다음에 더 알아보겠다.

 

• 이름 사이에 공백이 삽입될 수 없다.

 

이외에 문법은 아니지만, 변수의 이름은 그 목적에 알맞는 이름으로 선언하는게

나중에 코드를 분석하거나, 수정할 때 더 편리하다.

 

변수의 자료형(Data Type)

변수는 크게 두가지로 구분된다.

 • 정수형 변수

 • 실수형 변수

 

정수형 변수는 정수의 저장을 목적으로 선언된 변수이고, 실수형 변수는 소수점 이하의 값을 지니는 실수의 값을

저장할 목적으로 선언된 변수이다.

 

아래에 변수의 자료형을 더 자세하게 분류했다.

 • 정수형 변수

    -byte(1 byte), short(2 byte), int(4 byte), long(8 byte)

 • 실수형 변수

    -float(4 byte), double(8 byte)

 

자세한건 다음에 더 알아보도록 하겠다.

'기타 > 글보관' 카테고리의 다른 글

(C) C언어의 연산자  (0) 2019.09.07
(C) 주석의 활용  (0) 2019.08.08
(C) Hello world! 출력하기 응용편  (0) 2019.03.24
(C) Hello world! 출력하기  (0) 2019.03.14