자격증/정보처리필기

[정보처리산업기사] 43강 데이터 타입

동호다찌 2022. 3. 31. 20:04
반응형

1. 변수의 개요

변수는 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로, 변할 수 있는 값을 의미한다.

  • 변수는 저장하는 값에 따라 정수형, 실수형, 문자형, 포인터형 등으로 구분한다.

2. 변수명 작성 규칙

  • 영문자, 숫자, _ 를 사용할 수 있다.
  • 첫 글자는 영문자나 _로 시작해야 하며, 숫자는 올 수 없다.
  • 글자 수에 제한이 없다.
  • 공백이나 *, +, -, / 등의 특수문자 사용 불가
  • 대소문자 구분
  • 예약어를 변수명으로 사용할 수 없다.
  • 변수 선언 시 문장 끝에 반드시 세미콜론(;)을 붙여야 한다.

3. 기억 클래스

변수 선언 시 메모리 내에 변수의 값을 저장하기 위한 기억영역이 할당되는데, 할당되는 기억영역에 따라 사용 범위에 제한이 있다. 이러한 기억영역을 결정하는 작업을 기억 클래스(Storage Class)라고 한다.

  • C언어에서는 자동변수, 레지스터 변수, 정적 변수(내부), 정적 변수(외부), 외부 변수
  • 자동변수
    • 함수나 블록이 실행되는 동안에만 존재하며 이를 벗어나면 자동으로 소멸된다.
    • 초기화하지 않으면 쓰레기값이 저장된다.
  • 외부변수
    • 현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조하기 위한 변수, 함수 밖에서 선언, 함수가 종료되어도 값이 소멸되지 않음
    • 초기화하지 않으면 0으로 초기화, 다른 파일에서 선언된 변수를 참조할 경우 초기화할 수 없다.
  • 정적 변수
    • 함수나 블록 내에서 선언하는 내부 정적 변수와 함수 외부에서 선언하는 외부 정적 변수가 있다.
    • 내부 정적 변수는 선언한 함수나 블록 내에서만 사용할 수 있고, 외부 정적 변수는 모든 함수에서 사용할 수 있다.
    • 두 변수 모두 함수나 블록이 종료되어도 값이 소멸되지 않는다
    • 초기화는 변수 선언 시 한 번만 할 수 있으며, 초기화를 생략하면 자동으로 0으로 초기화 된다.
  • 레지스터 변수
    • 레지스터 변수는 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수이다.
    • 함수나 블록이 실행되는 동안에만 존재하며 벗어나면 자동 소멸
    • 레지스터의 사용 개수는 한정되어 있어 꽉 차면 자동 변수로 취급되어 메모리에 할당된다.
    • CPU에 저장되어 메모리 주소를 가질 수 없기 때문에 변수의 주소를 구하는 주소 연산자(&)를 사용할 수 없다.

가비지 콜렉터란?
변수를 선언하고 사용하지 않으면 변수들이 점유한 메모리 공간은 다른 프로그램들이 사용할 수 없게 됩니다. 이렇게 선언만 하고 사용하지 않는 변수들이 점유한 메모리 공간을 강제로 해제하여 다른 프로그램들이 사용할 수 있도록 하는 것을 가비지 콜렉터하고 하며 수행하는 모듈 또한 가비지 콜렉터라고 한다.


4. 변수의 선언

자료형 변수명 = 값;

String test = "테스트"
  • 자료형: 변수에 저장될 자료의 형식을 가진다.
  • 변수명: 사용자가 언하는 이름을 임의로 지정
  • 값: 변수를 선언하면서 초기화할 값을 지정한다. 필수는 아님
 
반응형