2016 - 2024

感恩一路有你

java怎么交换变量值 函数的交换律?

浏览量:4502 时间:2023-09-02 14:27:17 作者:采采

函数的交换律?

同样函数的几种

(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(

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。