열혈강의 c중에 예제 질문입니다.
레온
2023.04.01
질문 제목 : 열혈강의 c중에 예제 질문입니다.자세한 설명 부탁드립니다.질문 내용 : 열혈강의 책에서 전역변수를 공부하면서 이해가 좀 안되서 질문 드립니다.
/*glo_val2.c*/
#includestdio.h
int val=0;
void fct(void);
int main(void)
{
val=10;
printf(val : %d \n, val);
fct();
printf(val : %d \n, val);
return 0;
}
void fct(void)
{
int val=20;
val++;
}
이 소스를 컴파일하면 val 값이 둘 다 10입니다.
위에는 알겠는데 fct 함수의val 값이 왜 10이 되는지 자세한 설명 부탁드려요.
-
새밝
val=10;
printf(\val : %d \\n\ -
하예
두 사람이 있는데, 이 두 사람이 서로 이름이 똑같아요. 이름은 같아도 전혀 다른 사람이잖아요.
main 함수에 있는 val과 fct 함수에 있는 val은 이름은 같지만, 서로 완전히 다른 변수입니다. -
미쁘다
우선순위 때문에 그렇습니다
전역, 지역에 같은이름의 변수가 존재하면
지역변수가 우선순위가 높아서 그렇습니다. -
ComeOn
함수값이 아니라 함수에서 val값
-
낶아
fct 함수값은 10이되는게 아니죠.....
void fct()
{
int val=20;
val++;
printf(\val : %d \\n\