扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include stdio.h
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了东营区免费建站欢迎大家使用!
void exe(int** p, int** q);
void main()
{
int *p, *q, a, b;
scanf("%d %d", a, b);
p = a;
q = b;
if (a b)
{
exe(p, q);
}
printf("a=%d,b=%d\n", a, b);
printf("max=%d,min=%d\n", *p, *q);
}
void exe(int** p, int** q)
{
int* t;
t = *p;
*p = *q;
*q = t;
}
看你的需要了,有时不用指针作为参数达不到你要的效果,比如一个swap()函数。
int
swap(int
a,int
b)
{
int
tmp;
tmp=a;
a=b;
b=tmp;
}
如果你想调用该函数交换两个变量的值,在主函数中输出,那是不可能的。比如这样调用:
int
x=1,y=2;
swap(x,y);
printf("%d
%d",x,y);
你认为会输出2
1吗?错!还是会输出1
2的。因为传入swap()函数的只是x,y的拷贝,而不是它们自身。
如果要真正达到交换的目的,就要用指针传值。这样定义函数:
void
swap(int
*a,int
*b)
{
int
tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
但是给函数传值时要注意,指针是指向地址的,所以参数要是地址,即需要给变量取地址。
int
x=1,y=2;
swap(x,y);
printf("%d
%d",x,y);
这样就是输出2
1了!
一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;
指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。
调用就是用函数名,还要传送相应的调用参数。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流