荷泽泽
2020-11-12 11:03
采纳率: 66.7%
浏览 44

C语言中函数参数为指针变量时,在子函数中交换指针地址为什么不会反应到主函数里?

#include <stdio.h>

void ex(int *m, int *n);

int main () {
    int *p1, *p2;
    int a = 7, b = 1;
    p1=&a;
    p2=&b;
    printf ("p1=%p p2=%p\n", p1, p2);
    ex(p1,p2);
    printf ("p1=%p p2=%p\n", p1, p2);
}


void ex(int *m, int *n) {
    int *t;
    t = m;

    m = n;

    n = t;

}

为什么这样做之后,p1指针还是指向a,而不是指向b?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 天空下的小点 2020-11-12 14:02
    已采纳

    内容没改变,要改变内容用ex的实现中应该用*m =  *n;

    点赞 打赏 评论
  • 荷泽泽 2020-11-13 16:32

    哦哦哦 懂了谢谢!

    点赞 打赏 评论

相关推荐 更多相似问题