Computer >> Máy Tính >  >> Lập trình >> C ++

Tham chiếu con trỏ C / C ++ so với Java

Con trỏ

Trong ngôn ngữ lập trình C, C ++, con trỏ là một biến chứa địa chỉ của một biến khác.

ví dụ

#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;
}

Đầu ra

8
0x7fee1ae7bc94
8
10

Tài liệu tham khảo

Trong ngôn ngữ lập trình java, tham chiếu là một biến tham chiếu đến một đối tượng và sử dụng nó mà chúng ta có thể sử dụng các thuộc tính và chức năng của một đối tượng.

ví dụ

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;
   }
}

Đầu ra

Mahesh

Sự khác biệt giữa Con trỏ và Tham chiếu

Sau đây là một số điểm khác biệt giữa Con trỏ và Tham chiếu C / C ++.

  • Không có số học con trỏ trong Java. Con trỏ là địa chỉ bộ nhớ và một con trỏ trỏ đến địa chỉ bộ nhớ của một biến. Trong C / C ++, một con trỏ có thể được tăng / giảm để trỏ đến một địa chỉ mới nhưng trong Java, các phép toán số học trên các tham chiếu không được phép.

  • Không có thao tác con trỏ trong Java Mặc dù nội bộ một tham chiếu sử dụng một con trỏ nhưng Java không cho phép bất kỳ thao tác nào đối với một con trỏ bên dưới bằng cách sử dụng một biến tham chiếu. Nó làm cho java trở nên an toàn và mạnh mẽ hơn. Tham chiếu có thể tham chiếu đến một đối tượng hoặc chỉ có giá trị rỗng.

  • Không truyền con trỏ trong Java Trong C / C ++, chúng ta có thể ép kiểu int * thành char * nhưng trong Java, chỉ các đối tượng liên quan mới có thể được ép kiểu, ví dụ:đối tượng của cùng một hệ thống phân cấp.