#include <stdio.h>


int inc(int counter);


int main()

{

int i = 10;


printf("함수 호출전 i=%d\n", i);

i=inc(i);

printf("함수 호출후 i=%d\n", i);


return 0;

}


int inc(int counter)

{

counter++;

return counter;

}


→ 실행결과: 함수 호출전 i=10 / 함수 호출후 i =11


#include <stdio.h>


int inc(int counter);


int main()

{

int i = 10;


printf("함수 호출전 i=%d\n", i);

inc(i);

printf("함수 호출후 i=%d\n", i);


return 0;

}


int inc(int counter)

{

counter++;

return counter;

}


→ 실행결과: 함수 호출전 i=10 / 함수 호출후 i =10


파랑 빨강으로 코드 구분한건데요.


책에는 inc(i);로 함수를 호출하면 변수 i를 inc()함수로 전달하지만 inc에서는 매개변수 counter를 변화시킬뿐 main() 안의 i와 inc()의 counter는 완전히 다른 별도의 지역 변수라서 변수 i에 영향을 끼치지 않는다는데 왜 파란색 코드에서 i=inc(i);라고 두면 i가 변하는거죠?


뭔가 그냥 받아들이라면 알겠는데 책에 쓰인 이유가 이해가 안되네요;