본문 바로가기

프로그래밍/코딩 첫 걸음

21-05-15

1. 지역 변수와 전역 변수

1) 지역 변수

  • 지역 변수는 선언된 블록이 끝나면 자동으로 소멸된다.
  • 반복문 블록 내 지역 변수의 경우, 반복될 때마다 초기화된다.
  • 초기화되지 않은 지역 변수는 쓰레기값을 같은다.
  • 매개 변수도 일종의 지역 변수이다.

2) 전역 변수

  • 자동으로 0으로 초기화된다.
#include <Stdio.h>
int x; // x를 전역 변수로 설정
void sub();

int main()
{
	for (int x = 0; x < 10; x++)
		sub();
}

void sub()
{
	for (int x = 0; x < 10; x++)
		printf("*");
}

 

  • x는 전역 변수이므로 모든 함수에서 같은 값을 공유한다.

 


2. 생존 기간 - 저장 유형 지정자

1) auto : 자동 변수

  • 함수가 시작되면 생성, 끝나면 소멸
  • 지역 변수는 auto가 생략되어도 자동 변수가 된다.

2) static : 정적 변수

  • 블록이 끝나도 기존의 값을 유지한다.
  • 자동으로 0으로 초기화된다.

3) extern : 외부 변수

  • 다른 소스 파일에 선언된 전역 변수를 불러온다.
  • 전역 변수 자체를 선언하는 것은 아니다.

4) register : 레지스터 변수

  • CPU의 일부인 레지스터에 변수를 저장한다.
  • 데이터를 읽고 쓰는 속도가 약 15배 정도 빠르다.

5) volatile 

  • 하드웨어가 수시로 변수의 값을 변경하는 경우에 사용한다.
  • 컴파일러는 해당 변수를 최적화에서 제외한다.

'프로그래밍 > 코딩 첫 걸음' 카테고리의 다른 글

21-05-18  (0) 2021.05.18
21-05-17  (0) 2021.05.17
21-05-07  (0) 2021.05.07
21-05-06  (0) 2021.05.06
21-05-05  (0) 2021.05.05