c 언어 swap(a,b)값 교환의 4 가지 실현 방법

1345 단어 swap값 교환
이 글 에서 서술 하고 자 하 는 내용 은 정말 간단 하 다.쓰기 전에 나 는 오랫동안 글 을 쓰 고 쓰 지 않 느 냐 고 고민 했다.평소에 swap(a,b)값 을 교환 할 때 우 리 는 기본적으로 첫 번 째 방법 을 사용 합 니 다.수학 을 잘 하 는 사람 에 게 는 두 번 째 방법 을 생각 할 수 있 습 니 다.생각 할 때 좋 을 것 입 니 다.어 셈 블 리 나 대위 에 대한 이해 가 있 는 사람 에 게 는 세 번 째 방법 이 떠 오 를 수 있 는데,이 방법 은 매우 절묘 하 다.그러나 진정 으로 나 로 하여 금 이 글 을 쓰 게 한 것 은 네 번 째 방법 이 었 다.묘 하 다.정말 묘 하 다.먼저(b=a),나 는 이렇게 좋 은 것 이 간단 하지만 발표 할 가치 가 있다 고 생각 하지 못 했다.
swap(a,b)값 을 교환 하 는 네 가지 방법:

void swap(int &a, int &b) 

    // :  
    int tmp = 0; 
    tmp = b; 
    b = a; 
    a = tmp; 
    // :  
    //a = a+b;  
    //b = a-b;  
    //a = a -b;  
    // :  
    //a ^= b ^= a ^= b;  
    // :  
    //a = a+b-(b=a);  


int main(void) 

    int a = 3; 
    int b = 4; 

    printf("before swap: a = %d, b = %d
", a, b); 
    swap(a, b); 
    printf("after swap: a = %d, b = %d
", a, b); 

    return 0; 
결과:
before swap: a = 3, b = 4
after swap: a = 4, b = 3
전 삼 방식 에 대해 세 가지 가 있 는데 그것 이 바로 값 전 삼,주소 전 삼,인용 전 삼(C++방법)이다.위 에서 사용 하 는 것 은 세 번 째 이 고 전 삼 을 인용 하 는 것 이다.이런 전 삼 방식 은 swap 안에서 더욱 직관 적 으로 실현 되 기 때문이다.물론 두 번 째 전 삼 방식 으로 주 소 를 전 삼 할 수도 있 지만 값 전 삼 은 안 됩 니 다.

좋은 웹페이지 즐겨찾기