300x250
변수의 종류
- 정적(static) 변수
- 외부(extern) 변수
변수의 종류는 크게 두 가지로 나눌 수 있습니다.
이러한 분류가 필요한 이유는
변수의 영역의 차이에 따른 용도가 존재함과 동시에
함수간 데이터 전달이 더 원할해야 하기 때문입니다.
정적 변수 (Static Variable)
#include <stdio.h>
int *print_ex();
int main()
{
int *count=0;
count=print_ex();
printf("외부함수 호출후 메인함수에서의 값 : %d\n", *count);
return 0;
}
int *print_ex()
{
static int sum=5;
return ∑
}
>>> 외부함수 호출후 메인함수에서의 값 : 5
위 코드는 정적 변수를 외부 함수에서 선언하여
해당 값을 포인터로 넘겨주는 코드입니다.
메인 함수에서는 정적 변수 sum의 주소를 참조하며
외부 함수에서는 선언한 값 그대로 출력이 됩니다.
즉 정적 변수는 함수가 호출/종료된 이후에도 계속 유지된다는 걸 알 수 있습니다.
외부 변수(extern variable)
#include <stdio.h>
void print_ex();
int a=10;
int main()
{
printf("메인함수에서의 출력 : %d\n", a);
print_ex();
return 0;
}
void print_ex()
{
printf("외부함수에서의 출력 : %d\n", a);
}
메인함수에서의 출력 : 10
외부함수에서의 출력 : 10
외부 변수는 메인 함수는 물론 다른 함수들 바깥에 선언된 변수입니다.
즉 모든 함수들 간의 값이 공유됩니다.
물론 사용 시에는 함수의 값이 함부로 변경되지 않도록
안정성 적인 측면에서 고려해야 할 사항이 존재합니다.
외부 변수 a는 메인 함수에서 출력할 때나
다른 함수에서 값을 출력할 때나 지정된 값이 동일하게 출력됩니다.
300x250
'개발&코딩 > C' 카테고리의 다른 글
[C] 함수의 구조와 예제 모음 (0) | 2020.09.09 |
---|---|
C언어 반복문 예제와 기초 알아보기 - for,while,dowhile (0) | 2020.09.09 |
C언어 조건제어문 if문/else문 과 switch/case문 예제와 기초 (0) | 2020.09.09 |
C언어의 기초적인 구조와 자료형 그리고 입출력 (0) | 2020.09.09 |
[C] C 중급 2차원 배열과 포인터배열 예제 (0) | 2020.07.27 |
댓글