반응형
함수의 인자전달 방식을 이해하기 위해 문제를 하나 풀어봅시다. 아래 코드의 출력 결과는 얼마일까요?
#include
using namespace std;
void my_fun(int arg1)
{
int* B=&arg1;
*B=3;
}
int main()
{
int A=5;
my_fun(A);
printf("%d",A);
}
출력 결과는 얼마일까요? 5입니다. arg1 자리에 A가 입력될 때, A라는 변수의 값만 복사되어 입력됩니다. arg1=5 가 되는 것입니다. B는 arg1의 포인터이므로 *B에 3을 입력하면 agr1이 3으로 수정될 뿐이지 A가 바뀌지는 않습니다.
반응형
'C++ > 함수' 카테고리의 다른 글
[C++] 함수의 인자로 배열을 입력하는 법 (0) | 2022.08.16 |
---|---|
[C++] 함수의 값으로 주소를 입력받는 방법 (0) | 2022.08.16 |
[C++] 함수선언을 하면 좋은 이유 (0) | 2022.08.16 |
[C++] 함수란 무엇인가 (0) | 2022.08.12 |
[C++] 함수 매개변수의 디폴트값 (0) | 2022.08.08 |
댓글