博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++参数传递 和 java参数传递的异同
阅读量:4180 次
发布时间:2019-05-26

本文共 1026 字,大约阅读时间需要 3 分钟。

1, C++ 传值方式:

(1) 基本类型参数传递

int main(){	int tt = 22;		// 传基本类型		common(tt);		cout << "tt value=" << tt << endl;	}	int common(int a)	{		int i = 2;		a = i;		cout << a << endl;		return 0;	}上面的代码输出: 2                2

 

(2)指针类型参数传递

	int main(){		int tt = 22;		int *p1 = &tt;		// 传指针		int v = valuePass(p1);		cout << "*p1=" << *p1 << endl;	}	int valuePass(int *p1){		int a = 1;		p1 = &a;		cout << *p1 << endl;		return 0;	}

上面的代码输出:    1   22

(3)引用类型参数传递

int main(){	int tt = 22;	int *p1 = &tt;	// 传指针	int v = valuePass(p1);	cout << "*p1=" << *p1 << endl;	// 传引用	v = refPass(p1);	cout << "*p1 refer=" << *p1 << endl;    }		
	int refPass(int *&p1){		int a =1;		p1 = &a;		cout << *p1 << endl;		return 0;	}

上面的代码输出: 1  1

 

可以看出,从 (1) -->(2)-->(3) 传递的参数越来越强,参数改变的范围越来越大, (1)是纯拷贝, (2)传递了地址拷贝, (3)传的变量本身过去.

(1) 既不能改变 外部参数的值,又不能改变外部参数指向的对象的值.

(2)不能改变外部参数的值,但能改变外部参数指向的对象的值.

(3)既可以改变外部参数的值,也可以改变外部参数指向的值.

 C++在处理参数传递的过程中更灵活,java中,只提供了(1) 和 (2)的用法,但和C++处理数据的方式一致.

java 参数传递的详细情况另外的一遍博客: http://blog.csdn.net/tangkund3218/article/details/18087543

你可能感兴趣的文章
让你变成ps高手
查看>>
在可执行jar中动态载入第三方jar(转贴)
查看>>
考虑体积重量的01背包问题—基于遗传算法
查看>>
K-means 聚类算法
查看>>
带约束的K-means聚类算法
查看>>
约束优化方法
查看>>
VRPTW建模与求解—基于粒子群算法
查看>>
数据结构与算法(1):大O表示法
查看>>
Java学习知识树
查看>>
文科生,你为啥学编程?
查看>>
使用Eclipse时出现Unhandled event loop exception错误的有效解决办法
查看>>
JAVA之路:第一章 JAVA入门初体验
查看>>
菜鸟文科生的java之路:运算符
查看>>
菜鸟文科生的java之路:变量和常量
查看>>
菜鸟文科生的java之路:流程控制语句
查看>>
北海糖:Java初阶练习题
查看>>
不知道什么是数组?看这里就好了
查看>>
文科生北海唐的Java之路:方法(慕课)
查看>>
自学Java的轨迹线路
查看>>
如何更好的隐藏你自己,让我们谈谈什么是封装?
查看>>