从品牌网站建设到网络营销策划,从策略到执行的一站式服务
因为在swap函数中,a b是x y的数据复制品,其变化与X y本身无关,如果要交换,需要传递x y的地址到子函数中,进行交换!
创新互联公司是一家专注于成都网站制作、成都网站建设与策划设计,黄平网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:黄平等地区。黄平做网站价格咨询:13518219792
1 #include stdio.h
2 void swap(int *a ,int *b )
3 {
4
5 int temp;
6 temp=*a;
7 *a=*b;
8 *b=temp;
9 }
10 int main()
11 {
12 int x=3;
13 int y=4;
14 swap(x, y);
15 printf("%d%d",x,y);
16 }
你交换的只是swap函数内的局部变量n,m值,应该改成这样
#includestdio.h
void swap (int *n,int *m)
{
int temp;
temp=*n;
*n=*m;
*m=temp;
}
void main()
{
int a=10,b=20;
swap(a,b);
printf("a=%d,b=%d\n",a,b);
}
注意函数形参的传值和传地址的区别
C语言中是可以用函数互换两个值的。
方法如下:
#include"stdio.h"
int swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
main()
{
int x,y;
printf("请输入x与y的值,用空格隔开\n");
scanf("%d %d",x,y);
printf("x=%d,y=%d\n",x,y);
swap(x,y);
printf("交换后\nx=%d,y=%d\n",x,y);
}
因为在函数中的参数,并不是调用者的变量,而是临时申请的变量a和b存放main函数中变量a和b的值,并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。
所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图