永发信息网

C语言用指针交换数值

答案:2  悬赏:20  手机版
解决时间 2021-02-24 02:58
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-23 13:48
定义个函数
void swap (*p,*q)
{ int *t;
*t=*a;
*a=*b;
*b=*t;
}
为什么无法交换
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-02-23 15:03
#includevoid swap1(int a1, int b1){ int temp1; temp1 = a1; a1 = b1; b1 = temp1;}void swap2(int *a2, int *b2){ int temp2; temp2 = *a2; *a2 = *b2; *b2 = temp2;}void main(){ int a = 1949, b = 2008; printf("变量a,b的初始值分别为: a=%d,b=%d\n", a, b); swap1(a, b); printf("不是用地址传递后产生交换无变化: a=%d,b=%d\n", a, b); swap2(&a, &b); printf("用地址传递后产生正确的交换: a=%d,b=%d\n", a, b);}
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-02-23 15:19

#include <stdio.h>//帮你改了几个地方

int fun(int *a,int *b) { int *t; t=a;//注意*t表示指针所指向的值,t表示地址 a=b; b=t; printf("%d\t%d\t",*a,*b); return 0; }

void main() { int c=1,d=2,*a=&c,*b=&d;//你这里的赋值要给指针地址,加上个& fun(a,b); printf("%d\t%d\t",*a,*b); }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯