C
매개변수에 전역변수
GunwooYun
2022. 5. 13. 00:39
전역변수는 함수들이 공유하면서 사용하는 변수이다. 전역변수를 수정하기 위해서는 굳이 매개변수에 넣을 필요 없이
함수안에서 바로 호출이 가능하다. 나는 함수의 매개변수로 전역변수를 넣어도 관계없을 것이라 생각했다. 하지만 달랐다.
#include<stdio.h>
int var = 1;
void test_func(int v){
printf("global variable parameter address in func : %p\n", &v);
printf("global variable address in func : %p\n", &var);
v++;
printf("v++ : %d\n", v);
printf("var : %d\n", var);
}
int main()
{
printf("global variable address : %p\n", &var);
test_func(var);
printf("var : %d\n", var);
return 0;
}
위 코드에서 함수의 매개변수로 전역변수를 넣어준다. 실행결과를 보면 전역변수의 주소값은 매개변수로 받은 전역변수의 주소값과는 다르다는 것을 알 수 있다. 그러므로 전역변수는 파라메타 없이 바로 사용해야한다.