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

ความแตกต่างระหว่าง const int*, const int* const, int const* ใน C/C++


อ่านจากขวาไปซ้าย (Right-to-left / Spiral rule):

int*                // Pointer to int
int const *         // Pointer to const int (ค่าที่ชี้ไม่ให้เปลี่ยน)
const int *         // เท่ากับข้างบน (Pointer to const int)
int * const         // Const pointer to int (pointer ไม่ให้เปลี่ยน address)
const int * const   // Const pointer to const int (ทั้ง pointer และค่าไม่ให้เปลี่ยน)
int const * const   // เท่ากับข้างบน

สรุป

  • const int* / int const* = pointer to const int (ข้อมูล const)
  • int* const = const pointer to int (pointer const)
  • const int* const / int const* const = const pointer to const int (ทั้งคู่ const)

Spiral Rule: เริ่มจากชื่อตัวแปร เดินวนทิศทางเข็มนาฬิกา อ่าน pointer/type ตามลำดับ