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

อาร์เรย์ที่สลายตัวใน C / C ++ คืออะไร?


อาร์เรย์และพอยน์เตอร์ทำงานค่อนข้างคล้ายกันใน C/C++ แต่มีความแตกต่างที่ลึกซึ้งบางอย่าง ตัวอย่างเช่น ตัวดำเนินการ sizeof ทำงานแตกต่างกันมากในทั้งสอง เมื่อคุณแปลงอาร์เรย์เป็นตัวชี้

ตัวอย่าง

#include<iostream>

int main() {
   const int a[] = { 2, 3, 5, 7, 11 };
   const int* p = a;
   std::cout << ( sizeof(p) != sizeof(a) );
}

ผลลัพธ์

สิ่งนี้ให้ผลลัพธ์ -

1

ตัวดำเนินการ sizeof บนตัวชี้จะให้ขนาดของตัวชี้มากกว่าขนาดของอาร์เรย์ การสูญเสียความสามารถของตัวชี้นี้เรียกว่า "การสลายตัว"