java 中的引用/指针,与 c++/C# 中的引用/指针不是一个概念.
Java 引用,相当于 c++ 指针(fun3)。Java 引用可以赋值 null, 而 c++ 引用 (见 fun2) 不能赋值 null,c++ 指针可以赋值 null(fun3).
Java 中,无 c++ 引用(fun2)对应的语法。
结果引起不必要的质疑,特此,写博客,对c++/java/c# 几种编程语言的指针、引用,进行比较,期望引起更多的人,对此有所关注。
从语法上看,三种开发语言中,C++ 的指针、引用,最为复杂,因此,下面的举例,都从 C++ 代码开始,然后与 java/c# 的语法进行比较。
1) C++ 简单类型变量,有直接变量定义、指针定义、引用定义。
int aa = 10;//c++
int &bb = aa;//c++
int *cc = &aa;//c++
上述三行代码,最后三个变量指向同一个数据。相比较而言,java/c# 都只有变量定义,无引用定义、指针定义。
2) C++ 函数调用参数,简单类型变量,有直接变量定义、指针定义、引用定义,后两个,在函数内部改变数据,退出函数,能看到改变后的数据。
void simple_by_val(int a, const int b)