C언어 값에 의한 호출과 참조에 의한 호출 기초적 질문
글쓴이: dlwlstn321 / 작성시간: 수, 2018/05/30 - 7:24오전
#include <stdio.h> void modify(int value) { value = 99; } int main(void) { int number = 1; modify(number); printf("number = %d\n", number); return 0; }
이경우 결과값이
number = 1 이 나오고
포인터 변수를 사용하여 나타낸
#include <stdio.h> void modify(int *ptr) { *ptr = 99; } int main(void) { int number = 1; modify(&number); printf("number = %d\n", number); return 0; }
이경우에는 결과값이
number = 99 가 나오더라구요.
혹시 이 두가지 경우의 차이점에 대해서 설명해주실 수 있나요?
Forums:
두번째의 경우 main의 number에 대한 주소를
두번째의 경우 main의 number에 대한 주소를 넘겨 받아 가지고있으므로 main 함수의 스택의 number 부분을 직접고치게 되어 값이 변경되는 것입니다.
---
http://coolengineer.com
댓글 달기