Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตัวชี้ C/C++ เทียบกับการอ้างอิง Java


ตัวชี้

ในภาษา 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

ข้อมูลอ้างอิง

ในภาษาการเขียนโปรแกรมจาวา การอ้างอิงคือตัวแปรที่อ้างอิงถึงอ็อบเจ็กต์และการใช้งาน ซึ่งเราสามารถใช้ประโยชน์จากคุณสมบัติและฟังก์ชันของอ็อบเจกต์ได้

ตัวอย่าง

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++ และข้อมูลอ้างอิง

  • ไม่มี Pointer Arithmetic ใน Java ตัวชี้คือที่อยู่หน่วยความจำและตัวชี้จะชี้ไปยังที่อยู่หน่วยความจำของตัวแปร ใน C/C++ ตัวชี้สามารถเพิ่มขึ้น/ลดลงเพื่อชี้ไปยังที่อยู่ใหม่ได้ แต่ใน Java ไม่อนุญาตให้ดำเนินการทางคณิตศาสตร์ในการอ้างอิง

  • ไม่มีการจัดการตัวชี้ใน Java แม้ว่าการอ้างอิงภายในจะใช้ตัวชี้ แต่ Java ไม่อนุญาตให้มีการจัดการใด ๆ กับตัวชี้พื้นฐานโดยใช้ตัวแปรอ้างอิง ทำให้จาวาปลอดภัยและแข็งแกร่งยิ่งขึ้น การอ้างอิงสามารถอ้างถึงวัตถุหรือเป็นค่าว่างเท่านั้น

  • ไม่มีการแคสต์พอยน์เตอร์ใน Java ใน C/C++ เราสามารถแคสต์ int* เป็น char* ได้ แต่ใน Java สามารถส่งได้เฉพาะอ็อบเจ็กต์ที่เกี่ยวข้องเท่านั้น เช่น วัตถุที่มีลำดับชั้นเดียวกัน