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

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


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

สามารถเข้าถึงองค์ประกอบอาร์เรย์ด้วย pointers

ใน 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

การจัดสรรหน่วยความจำแบบไดนามิก (Dynamic Memory Allocation)

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

ใน 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

การส่งอาร์กิวเมนต์แบบ pass by reference

ใช้ pointers ส่งอาร์กิวเมนต์แบบ reference ให้ฟังก์ชันเพิ่มประสิทธิภาพ

ใน 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

นอกจากนี้ยังใช้ pointers ในการสร้างโครงสร้างข้อมูลเช่น linked list, tree ได้อีกด้วย