포인터를 이용한 swap 함수 만들기 - C 언어

2021. 3. 3. 17:27·C
728x90
반응형

 

포인터에 대한 간단한 요약으로는 다음 사진과 같다.

 

일반 변수 num과 포인터 변수 numPtr에 대한 설명

 

그림과 같이 포인터는 변수의 메모리 주소'만' 가리키는 화살표와 같다. 이를 이용해서 swap 함수를 만들어보자.

두 수를 a, b에 입력받고 출력한 뒤, 이 두 수를 서로 바꿔주는 swap 함수를 만들어 바뀐 수 또한 출력할 예정이다.

완성 코드는 다음과 같다.

#include <stdio.h>
 
void swap(int* a, int* b);
 
int main() {
 
    int a, b = 0;
    scanf("%d %d", &a, &b);
 
    printf("스왑하기 전 : %d %d\n", a, b);
 
    swap(&a, &b);
 
    printf("스왑한 후 : %d %d\n", a, b);
 
    return 0;
}
 
void swap(int* a, int* b) {
 
    int tmp =*a;
    *a = *b;
    *b = tmp;
}
Colored by Color Scripter
cs

 

a와 b는 지역변수이므로 main을 벗어나면 값이 소실된다. 그러므로 a와 b의 주소 값을 함수에 넘겨줘야한다. swap(&a, &b);

주소값을 저장할 수 있는 변수는 포인터 변수이므로 파라미터에는 int* a, int* b가 들어가게 된다.

 

void swap(int* a, int* b) {
    int tmp =*a;
    *a = *b;
    *b = tmp;
}
cs

 

두 수를 바꾸기 위해 임시 변수인 tmp를 생성하고 역참조를 이용해 a와 b의 값을 가져와 바꿔주면 된다.

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'C' 카테고리의 다른 글

연결리스트(Linked list) 마지막에서 두번째 데이터 출력 - C 언어  (0) 2021.04.09
연결리스트(Linked list) 생성 / 출력 - C 언어  (0) 2021.04.09
C - While문 이용하여 *별로 삼각형 만들기 3  (0) 2020.10.08
While문 이용하여 *별로 삼각형 만들기 2 - C 언어  (0) 2020.10.06
While문 이용하여 * 별로 삼각형 만들기 - C 언어  (0) 2020.10.06
'C' 카테고리의 다른 글
  • 연결리스트(Linked list) 마지막에서 두번째 데이터 출력 - C 언어
  • 연결리스트(Linked list) 생성 / 출력 - C 언어
  • C - While문 이용하여 *별로 삼각형 만들기 3
  • While문 이용하여 *별로 삼각형 만들기 2 - C 언어
waVwe
waVwe
    반응형
  • waVwe
    waVwe 개발 블로그
    waVwe
  • 전체
    오늘
    어제
    • ALL (184)
      • Python (1)
      • Spring (15)
      • DevOps (10)
      • Git (6)
      • JAVA (4)
      • C (22)
      • 코테 문제 풀이 (124)
        • 프로그래머스 (43)
        • 백준 (2)
        • 정올 (64)
        • SW Expert Academy (1)
        • 온코더 oncoder (14)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 🐙 Github
  • 공지사항

  • 인기 글

  • 태그

    연결리스트
    내일배움캠프
    형변환
    아파치카프카
    이진트리
    springboot
    progate
    java
    C
    알고리즘
    Til
    프로그래머스
    스파르타코딩
    CI/CD
    깃헙
    자료구조
    devops
    온코더
    C언어
    정올
    깃
    도커
    스파르타코딩클럽
    자바
    docker
    스프링부트
    MSA
    스프링
    코테
    while문
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
waVwe
포인터를 이용한 swap 함수 만들기 - C 언어
상단으로

티스토리툴바