用swap函数交换两个整数

#include<stdio.h>  //头文件
main() //主函数
{
void swap(int *p,int *q); //声明
int a,b; //定义两个整数
int *p1,*p2; // 定义两个地址
scanf("%d,%d",&a,&b); //输入两个整数
p1=&a; //p1指向a
p2=&b; // p2指向 b
swap(p1,p2); //交换p1和p2
printf("%d,%d\n",a,b); //输出a,b的值
}
void swap(int *p,int *q) //调用函数
{
int k; //定义一个整数
k=*p; // 将*p的值赋给k
*p=*q; //将*q的值赋给*p
*q=k; //将k的值赋给*q
}
1,2
2,1 --------------------------------
Process exited after 14.19 seconds with return value 0
请按任意键继续. . .

总结:swap函数用的不熟练,定义函数时总出错。

#include<stdio.h>

void swap(int *p,int *q)
{
int *m;
*m=*p;
*p=*q;
*q=*m;
}

指针变量在使用的时候没有进行初始化,所以有可能指向是其他重要的数据。

#include<stdio.h>

void swap(int *p,int *q)
{
int *m;
m=p;
p=q;
q=m;
}

在swap函数中只是对指针变量中的地址进行调换(&p和&q交换),而并没有影响到a,b的值。

#include<stdio.h>
int main()
{int p1,p2;//定义整型
int*p,*q,*c;//定义指针
p=&p1;//p指向i
q=&p2;//q指向j
int*swap(int*a,int*b);//定义函数指针 ,让函数返回指针类型数据
scanf("%d,%d",p,q);
c=swap(p,q);//将函数的返回值赋值给指针变量c
printf("%d",*c);
return ;
}
int*swap(int*a,int*b)
{if(*a<*b)
return b;//返回指针变量
else
return a;
}
1,2
2
--------------------------------
Process exited after 3.378 seconds with return value 0
请按任意键继续. . .

总结:指针运用是需要注意何时用&,注意将p指向i和q指向j。

上一篇:linux nvme的那些workqueue


下一篇:hdu4737 A Bit Fun ——O(n)做法、错误的做法 + 正确做法