컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Friday, May 04, 2007

C++, 두 변수의 값 교환 함수 swap(); 참조에 의한 호출(Call by Reference)


C++의 참조 연산자인 앰퍼샌드(&) 기호를 함수 파라미터 정의 속에서 사용하면, 함수 내부에서 변경한 변수의 값이 함수 밖에서도 유지됩니다. 다만, C++가 아닌 그냥 C언어에서는 앰퍼샌드(&) 기호를 "주소 연산자"로서만 사용할 수 있습니다.

두 변수의 값을 교환하는 함수를 C로 작성하면 포인터를 사용해야 하지만, C++의 참조 연산자를 사용하면 보다 간단하게 할 수 있습니다.

소스 파일명: example.cpp
#include <iostream>

using namespace std;

void swap(int& a, int& b);


int main(void) {
  int i = 300;
  int j = 500;

  cout << "i = " << i << endl;
  cout << "j = " << j << endl;
  // i = 300
  // j = 500


  // 참조(Reference)에 의한 호출
  swap(i, j);


  cout << "i = " << i << endl;
  cout << "j = " << j << endl;
  // i = 500
  // j = 300
  // 두 변수의 값이 교환되었습니다.

  return 0;
}



// 괄호 속의 & 는 "주소 연산자"가 아니라
// "참조 연산자"이고 C++에서만 가능
void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}




C와 C++ 모두에서 작동하는 스왑함수가 필요하면 여기에 있는 C용을 사용하면 됩니다: ▶▶ C언어] 변수 값 서로 교환, 스왑 함수; Swap Function




tag: cpp
C언어 | C/C++ (Visual C++)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top