永发信息网

C语言中如何交换两个指针变量的的值

答案:6  悬赏:80  手机版
解决时间 2021-04-02 10:32
  • 提问者网友:辞取
  • 2021-04-02 06:25
C语言中如何交换两个指针变量的的值
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-04-02 06:56
交换两个指针变量的的值有两种不同的形式:
在指针定义所在函数交换两个指针变量的值
这种交换,与交换两个整型变量的值方法相同,分三步:
先将pa存储到临时变量pt中,
再将pb存储到pa中,
最后将pt存储到pb中

通过自定义函数进行交换两个指针变量的值
这种交换,必须要传递两个指针变量的地址到自定义函数中(即函数的形参是二维指针),然后在函数中对收到的二维指针变量中的内容进行交换,即可实现实参的交换。
参考代码:

全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-04-02 11:09
定义一个指针变量temp,*temp=*p1;*p1=*p2;*p2=*temp;
  • 2楼网友:深街酒徒
  • 2021-04-02 10:29
int a, b;
int *p1=&a,*p2=&b,*temp;
temp=p1; p1=p2;p2=temp;
这样就完成交换
  • 3楼网友:鸠书
  • 2021-04-02 10:08
4 int main(void)
5 {
6 struct sum
7 {
8 int data;
9 int id;
10 }add;
11
12 int *p;
13 int *q;
14
15 add.data = 1;
16 add.id =2;
17 p = &add.data;
18 q = &add.id;
19 printf("before turn p = %d q = %d\n",*p,*q);
20 p = &add.id;
21 q = &add.data;
22 printf("after turn p = %d q = %d\n",*p,*q);
23
24 return 0;
25 }
  • 4楼网友:笑迎怀羞
  • 2021-04-02 09:12
#include
struct student
{
long num;
float score;
};
void main()
{
struct student a,b,c,*p1,*p2,*p3;
a.num = 1;
b.num = 2;
c.num = 3;
// 交换内容
p1=&a;
p2=&b;
c = *p1;
*p1 = *p2;
*p2 = c;
// 交换地址
p3 = p1;
p1 = p2;
p2 = p3;
}
  • 5楼网友:低音帝王
  • 2021-04-02 08:14
定义一个中间变量t(也是结构体类型的):
t=p1;
p1=p2;
p2=t;
就行了追问不行啊。。。调试的时候显示error C2106: '=' : left operand must be l-value。。
该怎么解决额。。谢啦追答代码发来看看,qq:561190217追问你QQ验证问题的答案是。。= =追答tzklcy
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯