반응형
swap 함수 구현하기
swap은 두 변수의 값을 바꾸어주는 함수이다.
#include<stdio.h>
int adder(int x, int y);
void swap(int, int);
void swap1(int *x, int *y);
int main(){
// 선언문
int x, y, res;
// 입력문
x = 10;
y = 20;
// 처리문
res = adder(x, y); // Call By Value, 사본
// 출력문
printf("%d + %d = %d\n\n", x, y, res);
printf("main x = %d, y = %d\n", x, y);
swap(x, y); // 함수 호출, Call By Value(사본)
printf("main x = %d, y = %d\n\n", x, y); // main에 아무 영향을 주지 않는다.
swap1(&x, &y); // Call By Reference(원본)
printf("main x = %d, y = %d\n", x, y); // main에 영향을 주어 값이 바뀐다.
return 0;
}
int adder(int x, int y){
return x + y;
}
void swap(int x, int y){ // Call By Value(사본)
int tmp = x;
x = y;
y = tmp;
}
void swap1(int *x, int *y){ // Call By Reference(원본)
int tmp = *x;
*x = *y;
*y = tmp;
printf("\n-----------------------\n");
printf("swap1 : x = %d, y = %d\n", x, y); // x, y의 주소값을 출력한다.
printf("swap1 : x = %d, y = %d\n", *x, *y); // x, y에 저장된 값을 출력한다.
printf("\n-----------------------\n");
}
반응형
'C' 카테고리의 다른 글
[C언어] 실습: 지역 변수 (0) | 2021.03.09 |
---|---|
[C언어] 실습: 두 개의 정수를 입력받은 후, 큰 수 출력하기 (함수) (0) | 2021.03.08 |
[C언어] 변수 (0) | 2021.03.06 |
[C언어] 실습: 점수를 입력받은 후, 총점 및 평균 계산하기 (다차원 배열) (0) | 2021.03.04 |
[C언어] 다차원 배열 (0) | 2021.03.03 |