พอยน์เตอร์ ใน C ++ เป็นตัวแปรที่เก็บแอดเดรสของตัวแปรอื่นใน c ++ แอดเดรสจะถูกเก็บไว้ในตัวแปรพอยน์เตอร์และช่วยในการนำ call-by-reference ไปใช้
คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
- พอยน์เตอร์
- ตัวชี้และอาร์เรย์
- ตัวชี้ Null
- ตัวชี้เป็นโมฆะ
- การดำเนินการทางคณิตศาสตร์ของตัวชี้
- ชี้ไปที่ตัวชี้
- ชี้ไปที่ฟังก์ชัน
เริ่มต้นด้วยบทความนี้เกี่ยวกับตัวชี้บน C ++
ไวยากรณ์:
ประเภทข้อมูล * ชื่อชื่ออื่นตัวอย่าง: int * ptr
- ตัวแปรตัวชี้มีเครื่องหมาย * นำหน้าชื่อ
- ตัวชี้เรียกอีกอย่างว่าตัวระบุตำแหน่งหรือตัวบ่งชี้
การใช้ตัวชี้:
- การจัดสรรหน่วยความจำแบบไดนามิก
- ในโปรแกรมอาร์เรย์โครงสร้างและหน้าที่ต่างๆ
นี่คือรหัสตัวอย่าง:
# รวมโดยใช้เนมสเปซ std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' }
เอาท์พุต:
คำอธิบาย:
สตริงย่อยในเซิร์ฟเวอร์ sql พร้อมตัวอย่าง
ในโปรแกรมข้างต้นเราจะแสดงการทำงานพื้นฐานของตัวชี้ เรามีตัวแปรจำนวนเต็มด้วยค่า 17 เรามีตัวแปรพอยน์เตอร์ ptr ชนิด int เรากำหนดที่อยู่ของ num ให้กับตัวชี้ ptr
ก่อนอื่นเราพิมพ์ค่าของ ptr นั่นคือที่อยู่ ต่อไปเราจะพิมพ์ค่า num และในตอนท้ายเราพิมพ์ค่าในตำแหน่งที่ถือโดย ptr ตัวชี้
ไปต่อกับบทความนี้เกี่ยวกับ Pointers บน C ++
ตัวชี้และอาร์เรย์:
เราสามารถพิจารณาองค์ประกอบแรกของอาร์เรย์เป็นตัวชี้ได้เนื่องจากชื่ออาร์เรย์มีที่อยู่ขององค์ประกอบแรก เราสามารถใช้ตัวชี้ในลักษณะต่อไปนี้
นี่คือตัวอย่างรหัส:
#include โดยใช้ namespace std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] }
เอาท์พุต:
คำอธิบาย:
ในโปรแกรมข้างต้นเราจะแสดงการทำงานพื้นฐานของตัวชี้ด้วยอาร์เรย์ เรามีอาร์เรย์ arr ที่มีค่า 5,10,20 เรามีตัวแปรตัวชี้ ptr ประเภท int เรากำหนดที่อยู่ของ arr ให้กับตัวชี้ ptr
ก่อนอื่นเราพิมพ์ค่าของ ptr [0] นั่นคือองค์ประกอบแรกของอาร์เรย์ ต่อไปเราจะพิมพ์องค์ประกอบที่สองและสามตามลำดับ เนื่องจากองค์ประกอบอาร์เรย์ถูกจัดเก็บอย่างต่อเนื่องตัวชี้จึงสามารถเข้าถึงตำแหน่งอื่นของอาร์เรย์ได้โดยการเพิ่ม
ไปต่อกับบทความนี้เกี่ยวกับ Pointers บน C ++
ตัวชี้ Null:
มีชนิดของพอยน์เตอร์ที่ไม่มีค่าและมีค่าว่าง
ตัวอย่าง :
int * ptr = โมฆะ
มีประโยชน์มากในโครงสร้างข้อมูลเช่นรายการที่เชื่อมโยง
ไปต่อกับบทความนี้เกี่ยวกับ Pointers บน C ++
ตัวชี้โมฆะ:
นี่คือประเภทของพอยน์เตอร์ที่ไม่มีประเภทส่งคืน
ไปต่อกับบทความนี้เกี่ยวกับ Pointers บน C ++
การดำเนินการทางคณิตศาสตร์ของตัวชี้:
สามารถดำเนินการต่าง ๆ กับพอยน์เตอร์ได้ นี่คือบางประเภทที่สำคัญ
- เพิ่มขึ้น (++)
- ลดลง (-)
- ความแตกต่างระหว่างสองพอยน์เตอร์ (p1-p2)
- การเพิ่มจำนวนเต็มให้กับตัวชี้ (+ หรือ + =)
- การลบจำนวนเต็มจากตัวชี้ (- หรือ - =)
นี่คือรหัสเพื่อสาธิตการทำงานบางส่วนเหล่านี้:
#include โดยใช้ namespace std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr สำหรับ (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } }
เอาท์พุต:
คำอธิบาย:
เราแสดงให้เห็นการดำเนินการทางคณิตศาสตร์อย่างง่ายของตัวแปรพอยน์เตอร์ที่เพิ่มขึ้นแสดงในโปรแกรมด้านบน
ไปต่อกับบทความนี้เกี่ยวกับ Pointers บน C ++
ชี้ไปที่ตัวชี้:
ในระบบประเภทนี้มีตัวชี้สองตัว ตัวชี้แรกชี้ไปที่ตัวชี้ที่สองและตัวชี้ที่สองชี้ไปที่ตัวแปรที่เก็บค่าไว้
นี่คือรหัสตัวอย่าง:
# รวมโดยใช้ namespace std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 }เอาท์พุต:
ไปต่อกับบทความนี้เกี่ยวกับ Pointers บน C ++
ชี้ไปที่ฟังก์ชั่น:
นี่คือวิธีการส่งตัวชี้ไปยังฟังก์ชัน ต้องประกาศพารามิเตอร์ฟังก์ชันเป็นชนิดตัวชี้ แสดงอยู่ในรหัสด้านล่าง
#include ใช้ namespace std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg }
เอาต์พุต
นี่คือวิธีที่เราส่งตัวชี้ไปยังฟังก์ชัน
ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้ในเรื่อง 'Pointers in C ++' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ ได้รับการออกแบบมาเพื่อฝึกฝนคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด