:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/03/25 19:46
Call by value이기 때문에 그냥 값이 복사되서 넘어 가는 것 입니다.
주소를 넘기는 것은 Call by reference 입니다.
08/03/25 19:48
값이 같다는 것뿐 실질적인 메모리상의 주소같은건 아~~무 상관없습니다..
메인함수에서 펑션1을 호출하면 a,b 의 값이 카피가 되어 펑션1이 관리하는 메모리 영역에 따로 주소를 잡고 보관되어집니다. 펑션1이 종료되는 순간 펑션1에서 쓰는 a,b 는 날라가서 사라지게 되고요..
08/03/26 02:19
메인에서 a,b를 선언하면 메모리가 잡힐때 그 주소의 이름으로 a,b가 쓰입니다.
그 단순히 저기서 function1(a,b)라고 하시면 a,b에 있는 값이 전달됩니다. 그리고 function1(int a,int b)하면 또 다른 메모리 공간이 잡히는데 이것 역시 이름이 a,b가 됩니다. 단 function의 parameter...그러니까 매개변수라고 하죠... 함수내의 매개변수는 함수가 종료되면 그 메모리 공간은 그냥 슥 사라집니다. access가 불가능 해집니다. (이것이 바로 call by value의 한계입니다.) C++니까 call by reference나 pointer등의 기법으로 주소끼리 전달해서 직접 값을 다루는게 아니면은 함수 종료되고 다시 메인으로 호출될때 메인의 a,b에는 function1에서 쓰인 a,b와는 하등 연관이 없으며 function1에서 따로 쓸려고 만든 공간에 int a, int b를 선언하는거라고 생각하시면 됩니다... 길게 썼는데 정지연님껄 좀 복잡하게 만든 느낌이..ㅠㅠ
|