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

“ โมฆะ *” แตกต่างกันใน C และ C ++ อย่างไร


ในส่วนนี้เราจะมาดูกันว่าอะไรคือความแตกต่างระหว่างตัวชี้โมฆะใน C และตัวชี้เป็นโมฆะใน C++ ทั้งคู่เป็นโมฆะพอยน์เตอร์ แต่ใน C ตัวชี้โมฆะสามารถกำหนดให้กับตัวชี้ประเภทใดก็ได้ แต่ใน C ++ เราไม่สามารถทำเช่นนั้นได้ ใน C ++ เราจำเป็นต้องพิมพ์แบบชัดแจ้งสำหรับการกำหนด

ในตัวอย่างต่อไปนี้ บรรทัดเหล่านี้สามารถดำเนินการได้เมื่อเราเขียนโค้ดในภาษา C

void *p;
int *int_ptr = p;

สิ่งนี้จะทำงานได้ดีใน C ตอนนี้ถ้าเราใช้ malloc() เพื่อจัดสรรพื้นที่หน่วยความจำบางส่วน เราสามารถใช้ typecast ที่ชัดเจน แต่ถ้าเราไม่ทำอย่างนั้น มันก็จะใช้ได้ดีเช่นกัน ฟังก์ชัน malloc() คืนค่าตัวชี้เป็นโมฆะ

int *int_ptr = malloc(sizeof(int) * 10);

ที่นี่ ตัวชี้โมฆะที่ส่งคืนจะถูกแปลงโดยปริยายเป็นตัวชี้ประเภทจำนวนเต็ม

ตอนนี้ถ้าเราต้องการเรียกใช้โปรแกรมเดียวกันใน C และ C++ เราควรพิมพ์พอยน์เตอร์อย่างชัดเจน

void *p;
int *int_ptr = (int *) p;
int *arr_ptr = (int *) malloc(sizeof(int) * 10);