C/C++ 指针与 Java 引用\n
指针
在 C、C++ 编程语言中,指针是存储另一个变量地址的变量。
示例
#include <iostream> using namespace std; int main() { //int variable int i = 8; //pointer variable int * pI; //assign the address of i to its pointer pI = &i; //print the number cout<<i<<endl; //print the address of the number cout<<pI<<endl; //print the value pointed by pointer count<<*pI<<endl; //change the value of variable using its pointer *pI = 10; //print the number cout<<i<<endl; }
输出
8 0x7fee1ae7bc94 8 10
引用
在 java 编程语言中,引用是指向对象并将使用对象的属性和函数的变量。
示例
public class Tester { public static void main(String[] args) { Student student = new Student(); student.setName("Mahesh"); System.out.println(student.getName()); } } class Student { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
输出
Mahesh
指针与引用的差异
以下列举了 C/C++ 指针和引用的部分差异。
Java 中没有指针算术。指针是存储器地址,一个指针指向变量的存储器地址。在 C/C++ 中,可以递增/递减指针以指向一个新的地址,但在 Java 中,不允许对引用进行算术运算。
Java 中没有指针操作尽管引用在内部使用指针,但 Java 不允许任何使用引用变量对底层指针的操纵。这使 java 更加安全和健壮。引用仅可以引用对象或为 null。
Java 中没有指针强制类型转换在 C/C++ 中,我们可以将 int* 转化为 char*,但在 Java 中,只有相关的对象才能被强制类型转换,例如相同层次的对象。
广告