swap函数在使用方法中有一种方式如下
void swap(int x , int y)
{
int temp=x;
x=y;
y=temp;
}
int main( )
{
int a = 10;
int b = 20;
swap(a , b);
printf("%d %d ",a ,b);
}
这种情况中,实参不会被改变,那么这种情况得swap作用是啥呢?
传参有误,所以swap在这里相当于没有任何作用
没啥作用
应该是写错了
一般传的是指针或地址
swap里的值没有传到main,所以main里,所以a,b没有交换
这里是一个交换的写法,交换a,b的地址
void swap(int *x , int *y)
{
int temp=*x;
*x=*y;
*y=temp;
}
int main( )
{
int a = 10;
int b = 20;
swap(&a , &b);
printf("%d %d ",a ,b);
}
没有作用,这样不会发生交换
不会改变 没啥作用
#include<stdio.h>
#include<string.h>
void swap(int a , int b)
{
a = 10;
b = 20;
int temp = a;
a = b;
b = temp;
printf(" a=%d\n b=%d\n ",a ,b); //在swap内部进行,转换成功
}
int main( )
{
int a = 10;
int b = 20;
swap(a , b);
printf("a=%d b=%d ",a ,b); //转换失败
return 0;
}