首页编程java编程javaswap函数有什么用 c语言 函数调用 swap函数 一定要用指针吗

javaswap函数有什么用 c语言 函数调用 swap函数 一定要用指针吗

编程之家2023-10-13102次浏览

大家好,今天小编来为大家解答以下的问题,关于javaswap函数有什么用,c语言 函数调用 swap函数 一定要用指针吗这个很多人还不知道,现在让我们一起来看看吧!

javaswap函数有什么用 c语言 函数调用 swap函数 一定要用指针吗

java程序为什么一定要写swap(x,y)

swap(x,y)是一个函数,字面意思是交换传入的两个参数的值。

函数内部会将变量x和变量y的值交换,并且打印出交换后的变量值,这里打印的是x=20,y=10

然而这样并不能真正把main函数里面定义的变量x,y的值互相交换,因为在这里传递给swap()函数的变量只是x,y的一个拷贝,然后再在函数内部对这个副本的值进行交换是不会对原来的x,y的值造成影响。

javaswap函数有什么用 c语言 函数调用 swap函数 一定要用指针吗

所以main函数里最后会打印出x=10,y=20

如果想要真正实现交换全部变量x,y的值,只需要把swap函数定义成static void swap(Integer x,Integer y),函数内部再对其进行交换就可以了。这里用到了Java中的包装数据类型,也称原始数据类型,用对象来接受传递过来的数据,然后对象就会指向全局变量x,y的内存地址,这个作用相当于C语言中的指针。这是让swap函数起作用的关键原理所在。

并不是所有的Java程序中都会用到这个函数,根据业务需要进行保留或删除吧。

javaswap函数有什么用 c语言 函数调用 swap函数 一定要用指针吗

java工作原理

Java工作原理

由四方面组成:

(1)Java编程语言

(2)Java类文件格式

(3)Java虚拟机

(4)Java应用程序接口

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。

c语言 函数调用 swap函数 一定要用指针吗

不一定。

void swap(int a,int b)

{

int t;

t=a;

a=b;

b=t;

}

这样写,只是传了一份拷贝给a,b,交换好后,栈清空,没有传回给你原来所要交换的数。而printf放里面可以是因为你的那份拷贝(即a,b)的值是跟你要交换的数一样的,所以行得通。

不用指针的方法就是:

void swap(int&a,int&b)

{

int t;

t=a;

a=b;

b=t;

}

这样就可以了,这个传进去的是原先数据的地址,地址都改变了,值也就交换了。

扩展资料:

关于指针与swap函数

1、用变量的指针交换,其实只是用指针名及指针运算符*访问变量,修改了变量的值。

int temp;

int*pa=&a;

int*pb=&b;

temp=*pa;*pa=*pb;*pb=temp;

2、用变量的引用交换,用”别名“访问变量

int temp;

int&aa=a;

int&bb=b;

temp=aa; aa=bb;bb=temp;

3、变量直接交换,用变量名访问变量,修改了变量的值

int temp;

int a=5;

int b=6;

temp=a; a=b; b=temp;

4、2的变形

int* temp;

int* pa=&a; int* pb=&b;

temp=pa; pa=pb;pb=temp;

cout<<*pa<<endls//-----指针交换了指向的地址,如果用*pa访问变量,此时就算是交换了,但是a和b没有交换。

java swap 方法

java swap方法:主要就是交换,在这里首先了解数据存储空间下面,有几个例子

public static void swap(int a,int b){

int temp=a;

a=b;

b=temp;

}

public static void swap(Excep c,Excep d){

Excep temp=c;

c=d;

d=temp;

}

public static void swap(List<Integer> e,List<Integer> f){

List<Integer> temp=e;

e=f;

f=temp;

}

public static void swap(int[] a){

if(a.length>=2){

int temp=a[0];

a[0]=a[1];

a[1]=temp;

}

}

public static void main(String[] args){

int a=2;

int b=3;

Excep c=new Excep();

Excep d=new Excep();

List<Integer> e=new ArrayList<Integer>();

e.add(1);

e.add(2);

List<Integer> f=new ArrayList<Integer>();

f.add(3);

f.add(4);

System.out.println("交换前:"+a+"、"+b);

swap(a,b);

System.out.println("交换后:"+a+"、"+b);

System.out.println("交换前:"+c+"、"+d);

swap(c,d);

System.out.println("交换后:"+c+"、"+d);

System.out.println("交换前:"+e+"、"+f);

swap(e,f);

System.out.println("交换后:"+e+"、"+f);

int[] g={1,2};

System.out.println("交换前:"+g+":"+g[0]+"、"+g[1]);

swap(g);

System.out.println("交换后:"+g+":"+g[0]+"、"+g[1]);}

输出结果:

交换前:2、3

交换后:2、3

交换前:Excep@527c6768、Excep@65690726

交换后:Excep@527c6768、Excep@65690726

交换前:[1, 2]、[3, 4]

交换后:[1, 2]、[3, 4]

说明直接整体用临时变量交换,最终不发生变化

交换前:[I@2a9931f5:1、2

交换后:[I@2a9931f5:2、1

对内部的交换,最终也会进行交换

关于本次javaswap函数有什么用和c语言 函数调用 swap函数 一定要用指针吗的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

什么是java方法 java编程中的&quot;方法&quot;是什么意思java学要什么软件有哪些?学习java 的软件有哪些