반응형
#include<stdio.h>
void change(int* x, int* y); // 함수 선언
int main() {
int a = 10;
int b = 20;
printf("함수 호출 전 : a = %d, b = %d\n", a, b);
change(&a, &b); // 함수에 a값이 저장된 주소값과 b값이 저장된 주소값을 전달한다.
printf("함수 호출 후 : a = %d, b = %d\n", a, b);
return 0; // 프로그램을 종료한다(시스템에 제어권을 넘겨준다.)
}
void change(int* x, int* y) { // 포인터로 매개변수를 받는다.
// x는 a가 저장된 주소 &a(주소값)를 받고
// y는 y가 저장된 주소 &b(주소값)를 받는다.
int tmp = 0;
printf("\n-----------------------------------------------\n\n");
printf("함수 내 처리 전 : &a = %d, &b = %d\n", x, y); // x와 y에는 a와 b가 각각 저장된 주소값이 저장되어 있다.
printf("함수 내 처리 전 : a = %d, b = %d\n\n", *x, *y); // *x는 x의 주소 안에 저장된 값을 가리킨다.
tmp = *x; // 포인터 *x가 가리키는 값을 tmp에 저장한다.
*x = *y;
*y = tmp; // tmp(값)를 y 주소 안에 저장한다. 그러면 *y는 y의 주소 안에 저장된 값을 가리킨다.
printf("함수 내 처리 후 : &a = %d, &b = %d\n", x, y);
printf("함수 내 처리 후 : a = %d, b = %d\n\n", *x, *y);
printf("\n-----------------------------------------------\n\n");
}
반응형
'C' 카테고리의 다른 글
[C언어] 실습: 함수를 이용한 덧셈, 뺄셈, 곱셈, 나눗셈 계산하기 - 2 (0) | 2021.02.02 |
---|---|
[C언어] 실습: 함수를 이용한 덧셈, 뺄셈, 곱셈, 나눗셈 계산하기 - 1 (0) | 2021.02.01 |
[C언어] 함수(Function) (0) | 2021.01.29 |
[C언어] 실습: 소수 출력하기(2~100 자연수) (0) | 2021.01.28 |
[C언어] continue; (0) | 2021.01.26 |