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

การประยุกต์ใช้พอยน์เตอร์ใน C/C++


การเข้าถึงองค์ประกอบอาร์เรย์

เราสามารถเข้าถึงองค์ประกอบอาร์เรย์โดยใช้พอยน์เตอร์

ใน C

ตัวอย่าง

#include <stdio.h>
int main() {
   int a[] = { 60, 70, 20, 40 };
   printf("%d\n", *(a + 1));
   return 0;
}

ผลลัพธ์

70

ใน C++

ตัวอย่าง

#include <iostream>
using namespace std;
int main() {
   int a[] = { 60, 70, 20, 40 };
   cout<<*(a + 1);
   return 0;
}

ผลลัพธ์

70

การจัดสรรหน่วยความจำแบบไดนามิก

ในการจัดสรรหน่วยความจำแบบไดนามิกเราใช้พอยน์เตอร์

ใน C

ตัวอย่าง

#include <stdio.h>
#include <stdlib.h>
int main() {
   int i, *ptr;
   ptr = (int*) malloc(3 * sizeof(int));
   if(ptr == NULL) {
      printf("Error! memory not allocated.");
      exit(0);
   }
   *(ptr+0)=1;
   *(ptr+1)=2;
   *(ptr+2)=3;
   printf("Elements are:");
   for(i = 0; i < 3; i++) {
      printf("%d ", *(ptr + i));
   }
   free(ptr);
   return 0;
}

ผลลัพธ์

Elements are:1 2 3

ใน C++

ตัวอย่าง

#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
   int i, *ptr;
   ptr = (int*) malloc(3 * sizeof(int));
   if(ptr == NULL) {
      cout<<"Error! memory not allocated.";
      exit(0);
   }
   *(ptr+0)=1;
   *(ptr+1)=2;
   *(ptr+2)=3;
   cout<<"Elements are:";
   for(i = 0; i < 3; i++) {
      cout<< *(ptr + i);
   }
   free(ptr);
   return 0;
}

ผลลัพธ์

Elements are:1 2 3

ส่งผ่านอาร์กิวเมนต์ไปยังฟังก์ชันเพื่อเป็นข้อมูลอ้างอิง

เราสามารถใช้พอยน์เตอร์เพื่อส่งต่ออาร์กิวเมนต์โดยการอ้างอิงในฟังก์ชันเพื่อเพิ่มประสิทธิภาพ

ใน C

ตัวอย่าง

#include <stdio.h>
void swap(int* a, int* b) {
   int t= *a;
   *a= *b;
   *b = t;
}
int main() {
   int m = 7, n= 6;
   swap(&m, &n);
   printf("%d %d\n", m, n);
   return 0;
}

ผลลัพธ์

6 7

ใน C++

ตัวอย่าง

#include <iostream>
using namespace std;
void swap(int* a, int* b) {
   int t= *a;
   *a= *b;
   *b = t;
}
int main() {
   int m = 7, n= 6;
   swap(&m, &n);
   cout<< m<<n;
   return 0;
}

ผลลัพธ์

67

ในการใช้โครงสร้างข้อมูล เช่น ลิสต์ที่เชื่อมโยง ทรี เราก็สามารถใช้พอยน์เตอร์ได้เช่นกัน