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 = &amp;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 中,只有相关的对象才能被强制类型转换,例如相同层次的对象。

更新于: 18-Jun-2020

2K+ 阅读次数

启动你的 职业

完成课程获取认证

开始
广告