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

 
Previous Post C언어] 변수 값 서로 교환, 스왑 함수; Swap FunctionC언어] 별표(*) 기호 의미, 뜻; Asterisk Pointer OperatorC언어] printf 함수에서 %p 의미. 변수 번지, 포인터 변수 주소 출력; Print...PHP 예제] 상수 정의 / 선언 방법; Define ConstantPHP 예제] 모든 상수 목록 출력 함수; Dump All Constant Function...PHP 예제] 배열 출력; 구성 요소를 브라우저에 간단히 프린트하기; Print Array...PHP 5] 운영체제에 맞게 개행문자 출력 상수; 자동 CRLF 줄바꿈; DOS Windo...PHP 예제] 배열 출력 함수, 구성 요소 화면에 프린트; Print Echo ArrayPHP 예제] 배열 크기, 사이즈 구하기 함수, 배열 요소 개수; Array Size Fu...PHP, Perl/펄] 큰따옴표/작은따옴표 출력. 쌍따옴표 홑따옴표 Print; echo ...

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

Friday, May 04, 2007

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

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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