swap( ) 함수에서 사용하는 a, b 변수와
main( ) 함수에서 사용하는 a, b 변수는 서로 다른 변수 입니다
void로 선언을 했던, 하지 않았던 void가 중요한것이 아니라
swap( ) 함수 호출시 main( )함수에서 a, b 변수의 주
소값을 전달을 했다면
swap 함수와 main 함수가 동일한 기억장소의 값을 가지고 실행이 되기 때문에
swap 함수에서 값이 변하면 main 함수에도 변경된 값이 적용이 되겠죠.
라고 밑에 문의글에서 답변해주셨습니다. 주소값을 전달하여 swap 함수에서 값을 바꿨을 경우 main 함수에 변경된 값이 적용 하려면
#include <stdio.h>
void swap(int *a, int *b) {
int t = *a;
*a = *b;
*b = t;
}
int main() {
int a = 11;
int b = 19;
swap(&a, &b);
switch(a) {
case 1:
b += 1;
break;
case 11:
b += 2;
break;
default:
b += 3;
break;
}
printf("%d", a - b);
return 0;
}
이렇게 바꾸면 되는건가요?
안녕하세요 길벗수험서 운영팀입니다.
회원님께서 말씀하신것처럼 변경을 하면
a에는 11, b에는 19가 들어있다가
swap( )을 실행하면 a에는 19, b에는 11이 저장되고
switch문에서 deafult를 만나 b는 14가 될것이고
a-b를 하면 19-14를 계산하여 결과값은 5가 나옵니다
-
관리자2025-04-02 20:22:34
안녕하세요 길벗수험서 운영팀입니다.
회원님께서 말씀하신것처럼 변경을 하면
a에는 11, b에는 19가 들어있다가
swap( )을 실행하면 a에는 19, b에는 11이 저장되고
switch문에서 deafult를 만나 b는 14가 될것이고
a-b를 하면 19-14를 계산하여 결과값은 5가 나옵니다
행복한 하루되세요 :)