스왑함수를
int swap (int num1, int num2){
int temp;
temp = num1;
num1 = num2;
num2 = temp;
return 0;
}
이렇게 만든다음에
메인함수 안에서 int a = 5, int b = 10 선언하고 swap (a, b); 이렇게 하면 a 값이랑 b 값이랑 바뀌어야 되는거 아님? 왜 안바뀌는거임?
그래서 위에 있는 스왑함수를
temp = *num1;
*num1 = *num2;
*num2 = temp;
이렇게만 바꾼다음 사용하면 바뀌는데 난 이해가 안되는게 맨 처음 스왑함수의 논리도 맞는데 왜 굳이 아스터리스크를 붙여야지 바뀌는지가 이해가 안되네
유튜브에 올라온 강의 듣는데 이부분 설명이 이해가 안감
이해안되면 그냥 포기해
위에 꺼는 a랑 b를 num1이랑 num2 에 넣고 바꾼거 a랑 b에는 영향 안미침
해당 댓글은 삭제되었습니다.
아 스왑함수 내부에서만 그렇게 바뀌고 메인함수에서 선언된것에 영향을 안준다는 뜻임?
근데 애스터리스크 붙인건 왜 바뀌는거임?
*붙어서 그럼
함수의 지역변수라 호출 끝나면 값이 다 사라진다