#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가 변하는거죠?
뭔가 그냥 받아들이라면 알겠는데 책에 쓰인 이유가 이해가 안되네요;
i값에다가 inc(i)하고있잖아? inc(i)의 return값은 conuter++;값이고?
이런것도 모르면 굳이 프로그래밍 할 이유가 없는데. 아니다. 이 단원이 아니라 그냥 이 전단원부터 다시 공부하는게 나을듯.
a = 1; 이거의 의미를 다시 공부해 보는게 더 빠를듯
우리가 출력하는값은 i값임. 두코드의 차이는 inc함수를거쳐서 나온값을 i에저장하느냐 안하느냐의차이잖아? inc함수를거쳐서나온값은 11이고, 이값을 i값으로 대체하냐 안하냐의 차이가있으니까 바꾸면 11이고 안바꾸면 10이지
이게 그렇게 이해력이 필요한건가
inc(i) 는 그냥 i의 값만 가져와서 계산한 값이야
아 그러니까 inc 함수를 호출해서 변수 i를 넣어주면 계산만 할뿐 변수 i에 저장이 되지 않아서 값이 10으로 나오는거 맞나요?