언어 자료구조 알고리즘/디딤돌 C언어

58. 지역변수

언제나휴일 2016. 1. 1. 12:36
반응형

 

안녕하세요. 언제나 휴일, 언휴예요.
이번에는 지역변수에 관해서 알아보기로 해요.

 

지역 변수는 특정 블록에 선언한 변수예요.
지역 변수는 특정 함수를 구현하는데 임시적으로 값을 기억할 필요가 있을 때 사용하죠.
그리고 지역 변수를 위한 메모리는 변수를 선언한 함수를 호출하면 할당하고 함수가 끝날 때 해제한답니다.
 
여러분이 주의할 점은 지역 변수는 선언한 블록에서만 보인다는 것이예요.
 
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

반응형

'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글

63. 함수명 결정  (0) 2016.01.01
62. 도메인 분석  (0) 2016.01.01
61. 함수 만들기 실습 시나리오  (0) 2016.01.01
60. 상수화 변수  (0) 2016.01.01
59. 정적 변수  (0) 2016.01.01
57. 전역 변수  (0) 2016.01.01
56. 매개변수 전달 원리  (0) 2016.01.01
55. 프로그램 동작 원리  (0) 2016.01.01
54. 프로세스 메모리 구조  (0) 2016.01.01
53. 프로그램 생명 주기  (0) 2016.01.01