포인터를 이용한 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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바