java怎么交换变量值 函数的交换律?
函数的交换律?
同样函数的几种
(1)
//error
intSwap1(inta,intb)
{
inttmp;
tmpa;
ab;
btmp;
return0;
}
在函数Swap1中,a和b的地址的值并没有什么收集。只不过是把10和20赋给了a和b,a和b虽然的值根本不会转变。
(2)
#includestdio.h
intSwap2(int*p1,int*p2)//error
{
int*tmp;
tmpp1;
p1p2;
p2tmp;
return0;
}
intmain()
{
inta10;
intb20;
printf(%d%d
,a,b);
Swap2(a,b);
printf(%d%d
,a,b);
return0;
}
在函数Swap2中,指针p1和p2共有指向a和b的地址,交换指针p1和p2,只是让指针p1对准b,指针p2指向a,a和b的值肯定就没收集。
(3)
#includestdio.h
intSwap3(int*p1,int*p2)
{
int*tmp;
*tmp*p1;
*p1*p2;
*p2*tmp;
return0;
}
intmain()
{
inta10;
intb20;
printf(%d%d
,a,b);
Swap3(a,b);
printf(%d%d
,a,b);
return0;
}
*tmp是一个野指针,又叫做什么悬挂指针,野指针是指就没朝比较有效(能访问网络)的地址的指针。
注:一个指针要想可以修改另一个函数的定义的数据,要传指针和解直接引用
一个变量只能访问网络自己定义的变量,而又不能必掉访问一个变量,所以我系统会崩溃掉。
(4)
#includestdio.h
intSwap(int*p1,int*p2)//true
{
inttmp;
tmp*p1;
*p1*p2;
*p2tmp;
return0;
}
intmain()
{
inta10;
intb20;
printf(%d%d
,a,b);
Swap(a,b);
printf(%d%d
,a,b);
return0;
}
这个函数里既传了指针,又接受打听一下语句,把*p1解引用的值a赋给tmp这个变量,把*p2解语句的值b赋给p1,把*p2解摘录的值b赋给p2,这样就同样了a和b的值。
C语言基础题。问:,编写程序实现两个变量数值交换?
大一的话就用加减法了#includeltstdio.hgtintmain(){inta,bprintf(
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。