질문좀 하겠습니다. 이해가 안되서요.
한뎃집
[1]번
#include stdio.h
// 5-1
int func(int i); // 함수의 선언, 11형태
void main()
{
int a=10;
int result=0;result=func(a); // 함수의 호출, 값에 의한 호출
printf(%d \n, result);
printf(%d \n, a);
}int func(int i) // 함수의 정의
{
i=i+1;
return i;
}*// --------------------------------------------------------------/[2]번#include stdio.h// 5-2
int func(int* i); // 함수의 선언, 11형태// 5-2
void main()
{
int a=10;
int result=0;result=func(&a); // 함수의 호출, 주소에 의한 호출
printf(%d \n, result);
printf(%d \n, a);
}int func(int* i) // 함수의 정의
{
*i=*i+1; // a=a+1
return *i;
}----------- 결과 -----------1번 같은경우 11 , 102번 같은경우 11 , 11나오는데요 둘이 똑같이 호출해서 반환하는 그런구조는 똑같은데 왜 a라는 변수의 결과가 틀리게나오는건가요?1번 같은 구조면 2번에서도 10이 나와야하는거 아닌가요?2번 같은 구조면 1번에서도 11이 나와야하는거 아닌가요?왜 이렇게 나오는지 이해가 안되서 질문합니다.
-
달콤이
변수의 주소값을 지정해주어서
-
어리버리
2번에서 이미 result=func(&a) A 가 변질이 되어버렸어요 값 11로