วิธีการติดตั้งพอยน์เตอร์ใน C ++



บทความนี้จะแนะนำให้คุณรู้จักกับแนวคิดของพอยน์เตอร์ใน C ++ จากนั้นติดตามด้วยการสาธิตเชิงปฏิบัติที่สนับสนุน

พอยน์เตอร์ ใน C ++ เป็นตัวแปรที่เก็บแอดเดรสของตัวแปรอื่นใน c ++ แอดเดรสจะถูกเก็บไว้ในตัวแปรพอยน์เตอร์และช่วยในการนำ call-by-reference ไปใช้

คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้





เริ่มต้นด้วยบทความนี้เกี่ยวกับตัวชี้บน 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' } 

เอาท์พุต:
เอาต์พุต - ตัวชี้ใน C ++ - Edureka



คำอธิบาย:

สตริงย่อยในเซิร์ฟเวอร์ 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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด