[C, C++] 지역변수

성현씨·2024년 2월 20일
0

C / C++

목록 보기
12/15
post-thumbnail
post-custom-banner

◾ 지역변수

📘 1. 지역변수

  • 지역 변수는 범위가 함수 내, 즉 일정 지역에서만 사용하는 변수입니다.
  • 지역 변수는 사용 범위가 블록 내부로 제한되므로 다른 함수에서는 사용할 수 없습니다.
  • 지역 변수는 { } 안에 있는 걸 말한다.
#include <stdio.h>

void assign(void);  // 함수 선언

int main()
{
	int a = 0;     // 지역 변수 선언과 초기화

	assign();      // 함수 호출
	printf("main 함수 a : %d\n", a);

	return 0;
}

void assign(void)
{
	int a;			// main 함수에 있는 변수와 같은 이름의 지역 변수

	a = 10;			// assign 함수 안에 선언된 a에 대입
	printf("main 밖 a : %d\n", a);
}

  • 이와 같이 다른 함수에 같은 이름의 변수를 선언해도 이름이 서로 충돌하지 않는다는 점!
  • 지역 변수는 이름이 같아도 선언된 함수가 다르면 각각 독립된 공간을 갖습니다.
    즉 두 함수에 선언된 변수 a는 이름만 같을 뿐 메모리에 별도의 저장 공간을 갖는다.

✳ 지역변수의 장점

① 메모리를 효율적으로 사용한다.
지역 변수는 함수 안에서만 사용하기 때문에 함수가 반환되면 그 저장 공간을 계속 유지할 필요가 없다. 따라서 운영체제는 지역 변수가 선언된 함수가 반환되면 할당된 저장 공간을 자동으로 회수해 재활용한다.
② 디버깅에 유리하다.

✔ 블록 안에서 사용하는 지역 변수

#include <stdio.h>

int main()
{
	int a = 10; 
	int b = 20;

	printf("교환 전 a와 b 값 : %d, %d \n", a, b);
	{
		int temp;   // 변수 선언

		temp = a;   // 변수 안에 a 값 10 넣기
		a = b;      // a 안에 b 값 20 넣기
		b = temp;   // b 안에 temp 값 10 넣기
	}
	printf("교환 후 a와 b 값 : %d, %d \n", a, b);


	return 0;
}

  • 이와같이 선언 위치에 따라 사용 범위가 달라질 수 있다는점!
profile
순수청년
post-custom-banner

0개의 댓글