加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何使用指针交换2个整数?

发布时间:2020-12-16 10:36:10 所属栏目:百科 来源:网络整理
导读:当我尝试使用指针交换这两个整数时,我得到分段错误. 基本上在我交换之前,x被分配给1并且y被分配给2.在交换之后,x被分配给2并且y被分配给1. 该程序采用两个整数x和y,据说可以交换它们: int swap(int x,int y){ int *swapXtoY; int *swapYtoX; *swapXtoY = y;
当我尝试使用指针交换这两个整数时,我得到分段错误.

基本上在我交换之前,x被分配给1并且y被分配给2.在交换之后,x被分配给2并且y被分配给1.

该程序采用两个整数x和y,据说可以交换它们:

int swap(int x,int y){

    int *swapXtoY;
    int *swapYtoX;

    *swapXtoY = y;
    *swapYtoX = x;
}

解决方法

函数交换期望它的两个参数都是int,但是你传递的是int *.编译器应该对此提出警告.

看起来你不知道指针是如何在C中工作的.你的函数只是为局部变量分配两个int.功能应该是:

int swap(int *x,int *y){

    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读