c 언어 는 두 값 이 서로 교환 되 는 함 수 를 실현 한다.

c 언어 에서 두 값 의 교환 을 실현 하 는 함수.
1、

#include <stdio.h>

void swap(int n1, int n2)
{
    int tmp;
    tmp = n1;
    n1 = n2;
    n2 = tmp;
}

int main(void)
{
    int a, b;
    puts("please input two integers.");
    printf("a = "); scanf("%d", &a);
    printf("b = "); scanf("%d", &b);
    
    swap(a, b);  //a、b       n1 n2,n1 n2     ,         ,n1 n2          a、b ,  a,b       
    
    printf("swapped a = %d
", a); printf("swapped b = %d
", b); return 0; }

2.지침 을 실 삼 으로 하여 이 지침 이 가리 키 는 대상,즉 실 삼 을 수정 할 수 있다.

#include <stdio.h>

void swap2(int *n1, int *n2)
{
    int tmp;
    tmp = *n1;
    *n1 = *n2;
    *n2 = tmp;    
} 

int main(void)
{
    int a, b;
    puts("please input two integers.");
    printf("a = "); scanf("%d", &a);
    printf("b = "); scanf("%d", &b);
    
    swap2(&a, &b); // a b              n1 n2,n1 n2    a b   ,*n1 *n2   a b   , *n1 n2    ,     a b     
    
    printf("
swapped a = %d
",a); printf("swapped b = %d
", b); return 0; }

ps:C 언어 구현 양수 교환 함수
우 리 는 간단 한 중간 변수 t 를 도입 하여 두 개의 수치 교환 을 할 수 있다.

int t;
t=x;
x=y;
y=t;
그러나 swap(int x,int y)가 호출 되 었 을 때 실제 인삼 은 복사 본 을 초기 화 했 고 함수 가 호출 전달 하 는 실제 인삼 자체 에 접근 하지 않 았 기 때문에 실제 인삼 의 값 을 수정 하지 않 았 습 니 다.
그럼 다음 함수

void swap(int x, int y)
{
       int t;
       t=x;
       x=y;
       y=t;
}
교환의 목적 을 달성 하지 못 할 것 이다.
C++에서 우 리 는 인용 형 삼 을 사용 하여 목적 을 달성 할 수 있다.

void swap(int &x, int &y)
{
       int t;
       t=x;
       x=y;
       y=t;
}
그러면 C 언어 에서 교환 함 수 를 어떻게 실현 합 니까?
포인터 값 교환 실현

#include<stdio.h>
void swap(int *x, int *y)
{
 int t;
    t=*x;
 *x=*y;
 *y=t;
}
int main()
{
 int a=1,b=2;
 swap(&a,&b);
 printf("a=%d,b=%d",a,b);
 return 0;
}
c 언어 가 두 값 을 서로 교환 하 는 함수 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 c 언어 두 값 교환 함수 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기