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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |