#include <stdio.h>
#include <conio.h>
int val=0;
void fct(void);
int main(void)
{
val=10;
printf(\"val : %d \\n\", val);
fct();
printf(\"val : %d \\n\", val);
getch();
}
void fct(void)
{
int val=20;
val++;
}
이건데요 첫번째 출력은 10인게 이해가 가는데
두번째 출력이 10인게 이해가 안가네요
열혈강의 전역변수 강의중 예제 입니다.
변수의 life cycle. 혹은 scope 로 검색하면 된다.
메인에 리턴 써주고
ㅇㅇ. 책장을 넘겨
fct() 함수에서 선언된 변수는 함수 나가는 순간에 사라집니다.
그리고 fct()에서 선언되고 증가된 갑 또한 지역변수죠
고로 전역변수에는 변함이 없습니다.
함수 호출 뒤에 나오는 변수는 변화되지 않은 전역변수
한마디로 지역변수 전역변수를 가린다
printf 를 호출한 순간 val의 값을 영향을 주는 건 val=10이라는 전역변수 뿐이죠 val=20 등등은 함수 내에서만 쓰이는 지역변수이므로 함수 밖에서의 val 의 값에 영향을 못 줍니다.
http://codepad.org/prhinljS
너가 원하는게 이건가?
아... 퇴근해야 하나...
시언어 공부는 왜하늬
프겔에 물어볼때는 손목걸고 물어보는거다
니가 니 소스를 읽어봐라 이해못하면 걍 접으셈