책 내용 질문하기
2024년3회5번
도서
2025 시나공 정보처리기사 실기 기출문제집
페이지
49
조회수
58
작성일
2025-04-01
작성자
최*환
첨부파일

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;

}


이렇게 바꾸면 되는건가요?

답변
2025-04-02 20:22:34

안녕하세요 길벗수험서 운영팀입니다.

회원님께서 말씀하신것처럼 변경을 하면

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가 나옵니다

    행복한 하루되세요 :)
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.