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
댓글 달기