c语言中实现两个值互换的函数

Posted 小虾米2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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\\n", a);
    printf("swapped b = %d\\n", 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("\\nswapped a = %d\\n",a);
    printf("swapped b = %d\\n", b);
    
    return 0;
}

 

以上是关于c语言中实现两个值互换的函数的主要内容,如果未能解决你的问题,请参考以下文章

Android JNI编程——C语言指针的初步认识指针变量互换两个数函数返回多个值

C语言指针实现两个数的互换

C语言中,怎么比较三个数的大小??

C语言中如何交换两个指针变量的的值

C语言结构体数组排序

C语言之linux内核实现位数高低位互换