Ⅰ 编写一个C语言程序,使用指针交换两个数的值。

#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int a,b,*m,*n,t;
m=&a,n=&b;
printf("请输入两个数:");
scanf("%d,%d",&a,&b);
t=*m;
*m=*n;
*n=t;
printf("交换后的值为:%d,%d\n",a,b);

return 0;
}

Ⅱ 关于C语言交换两个数(有关指针)

在C语言中,通过函数参数传递,进行两个数的交换,必须采用传递指针的方式,同时,在函数中,一定要对两个指针中的数据内容进行交换才能达到交换实参地址中数据的目的。

如:

//正确的交换函数
voidswap1(int*p1,int*p2)
{
intp;
p=*p1;//通过*引用地址中的数据,进行交换
*p1=*p2;
*p2=p;
}
//错误的交换函数
voidswap2(int*p1,int*p2)
{
int*p;
p=p1;//这里进行改变的是形参的值,而形参只是实参的一个副本,形参本身的变化,是不能改变实参的值的!!
p1=p2;
p2=p;
}

PS:要正确认识C语言中的实参与形参,形参在使用中只是实参的副本,若形参是指针,我们可以通过形参改变实参地址中的内容,但无法改变实参本身的值!

Ⅲ C语言用指针交换两个数

主函数里指针p指向变量a的地址,q指向变量b的地址,
*p=a,*q=b,这应该没问题吧。
change函数的形参分别是取a的地址和b的地址,
然后用第三个变量t来实现值交换。
再打印就是互换后的值。

Ⅳ C语言用指针法交换两个数的顺序问题

int swap(int *a,int *b)//a与b分别复制主函数x与y的值,即a与x的指向相同,b与y的指向相同 { int *t; {t=a;a=b;b=t;}//通过交换,a和y的指向相同,b与x的指向相同,但是,x与y没有改变原来指向,这样函数swap结束,a与b消失,输出结果不变 } 换成 int t; {t=*a;*a=*b;*b=t;}//将改变x和y指向的地址的值,达到交换目的

Ⅳ C语言指针交换两个数……求教!

I(&b1,&b2);

b1 和 b2 已经是指针地址了 用不着在取地址了,直接
I(b1,b2);

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

1、首先,就是最基本的知识,写头文件、函数声明、定义变量。