0Pricing
C++ Academy · บทเรียน

พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่

ประกาศพอยน์เตอร์ หาที่อยู่ด้วย & และทำความเข้าใจชนิดของพอยน์เตอร์

พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่ เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

พอยน์เตอร์คืออะไร

pointer เก็บที่อยู่ของวัตถุอื่น เป็นตัวแปรที่มีค่าคือ ตำแหน่งในหน่วยความจำ

การประกาศพอยน์เตอร์

ชนิดของ pointer คือ T* โดยทั่วไปให้วาง * ไว้ติดกับชนิดข้อมูล

int x = 10;
int* p = &x;          // p holds the address of x
std::cout << p;        // prints an address
std::cout << *p;       // prints 10

ตัวดำเนินการหาที่อยู่

& แบบเอกภาคใช้หาที่อยู่ของตัวแปร ผลลัพธ์มีชนิดเป็น T*

int x = 42;
int* p = &x;

ตัวดำเนินการยกเลิกการอ้างอิง

* แบบเอกภาคใช้อ่านหรือเขียนวัตถุที่ pointer ชี้อยู่

*p = 100;
std::cout << x;   // 100  (x changed through p)

พอยน์เตอร์ค่าว่าง

pointer ที่ไม่ได้ชี้ไปยังสิ่งใดควรกำหนดให้เป็น nullptr การยกเลิกการอ้างอิง pointer ดังกล่าวเป็นพฤติกรรมที่ไม่ได้กำหนด

int* p = nullptr;
if (p == nullptr) {
    std::cout << "no target\n";
}

พอยน์เตอร์คือจำนวนภายในระบบ

ที่อยู่เป็นเพียงจำนวนเต็ม (มักมีขนาด 64 บิต) ชนิดของ pointer จะบอกคอมไพเลอร์ว่าควรตีความไบต์ที่อยู่ ณ ตำแหน่งนั้นอย่างไร

Pointer ไปยัง const กับ const Pointer

ตำแหน่งของ const มีอยู่สองแบบที่เป็นอิสระต่อกัน:

int x = 1, y = 2;
const int* p1 = &x;     // pointer to const int (cannot modify *p1)
int* const p2 = &x;     // const pointer to int (cannot reseat)
const int* const p3 = &x; // both

ขนาดพอยน์เตอร์

พอยน์เตอร์ทั้งหมดมีขนาดเท่ากันบนแพลตฟอร์มเดียวกัน — โดยทั่วไปคือ 8 ไบต์ในระบบ 64 บิต แม้แต่ char* ก็มีความกว้าง 64 บิต

พอยน์เตอร์ฟังก์ชัน

คุณสามารถรับที่อยู่ของฟังก์ชัน แล้วเรียกฟังก์ชันนั้นผ่านพอยน์เตอร์ได้

int square(int x) { return x * x; }

int (*fp)(int) = &square;
std::cout << fp(5);   // 25

พอยน์เตอร์ไปยังสมาชิก

มีไวยากรณ์พิเศษสำหรับพอยน์เตอร์ไปยังสมาชิกของคลาส ซึ่งพบไม่บ่อยในโค้ดสมัยใหม่ — การเรียกกลับส่วนใหญ่ใช้ std::function หรือนิพจน์แลมบ์ดาแทน

เหตุผลที่พอยน์เตอร์สำคัญ

พอยน์เตอร์เป็นพื้นฐานของสิ่งต่อไปนี้:

  • หน่วยความจำแบบไดนามิก (new/delete หรือพอยน์เตอร์อัจฉริยะ)
  • การอ้างอิงที่มีหรือไม่มีได้ (เป็นค่าว่างได้)
  • พหุรูปแบบ (การเลือกเรียกแบบเสมือนผ่านพอยน์เตอร์ไปยังคลาสฐาน)
  • การทำงานร่วมกับอินเทอร์เฟซ API ของ C

ตรวจสอบความเข้าใจ

นิพจน์ &x ให้ผลลัพธ์เป็นอะไร

สรุปทบทวน

พอยน์เตอร์เก็บที่อยู่ ใช้ & เพื่อรับที่อยู่ และใช้ * เพื่ออ่านหรือเขียนค่าที่เป้าหมาย nullptr เป็นค่าว่างสำหรับพอยน์เตอร์ที่ปลอดภัย พอยน์เตอร์เป็นพื้นฐานของหน่วยความจำแบบไดนามิก การอ้างอิงที่มีหรือไม่มีได้ และพหุรูปแบบ

คำถามที่พบบ่อย

บทเรียน “พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่”

ประกาศพอยน์เตอร์ หาที่อยู่ด้วย & และทำความเข้าใจชนิดของพอยน์เตอร์ คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พอยน์เตอร์ดิบและตัวดำเนินการหาที่อยู่
  2. การถอดค่าพอยน์เตอร์และเลขคณิตของพอยน์เตอร์
  3. nullptr และความปลอดภัยของพอยน์เตอร์ว่าง
  4. เมื่อใดควรใช้พอยน์เตอร์หรือรีเฟอเรนซ์
← กลับไปที่ C++ Academy