永发信息网

c语言交换值问题,想要通过交换地址改变值。但是为什么不行,具体问题给了代码,求解答,谢谢

答案:1  悬赏:60  手机版
解决时间 2021-11-25 11:56
  • 提问者网友:树红树绿
  • 2021-11-24 15:51
c语言交换值问题,想要通过交换地址改变值。但是为什么不行,具体问题给了代码,求解答,谢谢
最佳答案
  • 五星知识达人网友:不想翻身的咸鱼
  • 2021-11-24 16:37
C语言的函数形式参数是函数的局部变量,你把实参地址值传给形参指针,在函数中交换只在函数中起作用,影响不到主调函数中实参指针的值。要想改变主调函数中的变量值,函数中得通过接收到的地址值改变其指向的变量值,这样的操作才是可行的,比如把你的函数改成——
void excha(int*a,int *b)
{
int t;
    t=*b;
    *b=*a;
    *a=t; 
}这样改交换的就不是函数中的a和b指针,而是指针指向的*a和*b,由于*a和*b就是主调函数中的p1和p2,所以它们的值才能发生变化。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯