永发信息网

调用swap函数,将数组名array作为实参,传入给swap函数C语言输入两个值,保存到数组中,将。

答案:2  悬赏:40  手机版
解决时间 2021-01-29 00:01
  • 提问者网友:川水往事
  • 2021-01-28 11:05
输入两个值,保存到数组中,将数组传递到swap函数中,实现两值的交换,最后输出交换后的两值。
样例输入

3 5

样例输出

5 3

提示

带填充标签的C/C++原程序
#include
@#1 //声明swap函数,其参数为数组

int main()
{
int array[2];
scanf("%d %d",&array[0],&array[1]);
@#2 //调用swap函数,将数组名array作为实参,传入给swap函数,实际传入的是数组的首地址
printf("%d %d\n", array[0], array[1]);
}

void swap(int a[])//array传入后,数组a和数组array的首地址相同,可以看成是同一个数组
{ int temp;
//交换a[0]与a[1]的值,起到了交换array[0]和array[1]的效果
@#3
@#4
@#5
//虽说数组array传入后,数组array和数组a是同一个数组,但在swap函数内部,不能使用array,因为swap函数内部,无法识别array这个名称。
}
最佳答案
  • 五星知识达人网友:野味小生
  • 2021-01-28 11:46
#1 void swap(int a[]);

#2 swap(array);

#3 temp=a[0];
#4 a[0] = a[1];
#5 a[1] = temp;
全部回答
  • 1楼网友:七十二街
  • 2021-01-28 12:12
c语言中形参与实参的关系是:形参是实参的值副本。无论参数的类型是什么,传递到子函数中的形参只是实参的值。所以,在改变形参变量自身的值时,是与实参无关的。换句话说,形参的改变不会影响到实参。 但,如果参数类型是指针类型,则可以通过对指针变量所指向的地址中的数据进行修改,达到改变实参地址中的数据目的。 因此,使用swap函数进行数据交换时,必须保证两点: 1. 参数必须是指针类型,指向待交换的数据 2. 交换时,必须交换地址中的数据,而不是交换地址本身。 参考代码: //错误的交换代码1 void swap1( int a, int b ) //参数不是待交换数据的指针 {     int t=a;     a=b;     b=t; } //错误的交换代码2 void swap2( int *a, int *b )  {     int *t=a;//交换形参变量本身     a=b;     b=t; } //正确的交换代码 void swap( int *a, int *b )  {     int t=*a;//交换形参变量地址中的数据,指针变量不变     *a=*b;     *b=t; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯