gpt4 book ai didi

c - 在函数中按地址交换两个参数时出错

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:23 25 4
gpt4 key购买 nike

<分区>

我想交换两个参数的值。但是我没能通过在函数中交换他们的地址来实现它。起初,我认为地址可以在功能上改变。但是调试后发现,虽然在函数中修改了地址,但是在main函数中并没有改变。为什么指针的地址在函数中的作用类似于参数的值?做,只改变副本?

include<stdio.h>
void swap(int *, int *);
int main()
{
int a = 5 , b = 10;
swap(&a, &b);
printf("%d", a);
printf("\n%p", &a);
return 0;
}

void swap(int *a, int *b)
{
int *temp ;
temp = a;
a = b;
b = temp;

}

现在我已经学会了解决它的方法之一。但是谁能告诉我怎么用二阶指针解决呢。

#include<stdio.h>
void swap();
int main()
{
int a = 5 , b = 10;
swap(&a, &b);
printf("%d", a);
printf("\n%p", &a);
return 0;
}
void swap(int *a, int *b)
{
int temp ;
temp = *a;
*a = *b;
*b = temp;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com