58. 지역변수

지역 변수는 특정 블록에 선언한 변수예요.
지역 변수는 특정 함수를 구현하는데 임시적으로 값을 기억할 필요가 있을 때 사용하죠.
그리고 지역 변수를 위한 메모리는 변수를 선언한 함수를 호출하면 할당하고 함수가 끝날 때 해제한답니다.

여러분이 주의할 점은 지역 변수는 선언한 블록에서만 보인다는 것이예요.

main 함수에 int 형식 변수 i를 선언하고 Foo 함수에서 변수 i를 사용하려고 하면 가시성이 없어서 컴파일 오류가 발생해요.

그리고 전역에 선언한 변수 이름과 같은 이름의 지역 변수를 선언하여 사용하면 지역 변수를 사용한답니다.
그리고 함수 내에서도 { }으로 블록을 지정할 수 있는데 블록에 변수를 선언하면 블록 내부에서만 사용할 수 있어요.

◈ 같은 이름의 변수를 선언하였을 때

#include <stdio.h>
int i=2;
 
int main()
{
    int i = 3;
 
    printf("TEST 1: %d\n",i);
    {
        int i = 4;
        printf("TEST 2: %d\n",i);
    }
    printf("TEST 3: %d\n",i);
    return 0;
}

◈ 실행 결과

TEST 1: 3
TEST 2: 4
TEST 3: 3

그리고 C언어에서 인자를 전달하여 구조적으로 프로그래밍 할 수 있어요.
◈ 지역 변수의 값을 전달하여 구조적으로 작성한 예

#include <stdio.h>
void View(int value);
int main()
{
    int arr[3] = {1,2,3};
    int i = 0;
 
    for(i=0;i<3; i++)
    {
        View(arr[i]);
    }
    return 0;
}
void View(int value)
{
    printf("%d\n",value);
}

◈ 실행 결과

1
2
3