Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Pointer dalam C: Panduan Lengkap tentang Tipe, Penggunaan, dan Praktik Terbaik

Apa itu Pointer dalam C?

Sebuah pointer adalah variabel yang menyimpan alamat memori variabel lain. Dengan mereferensikan alamat, pointer dapat secara tidak langsung mengakses atau memodifikasi data yang ditunjuknya. Indireksi ini memungkinkan penggunaan memori yang efisien dan eksekusi yang cepat, terutama saat menangani struktur data yang besar atau alokasi memori dinamis.

Bagaimana Menggunakan Pointer dalam C

Pertimbangkan variabel integer v:

int v = 0;
Nilainya adalah 0, tetapi setiap variabel juga memiliki alamat unik. Anda dapat mengambil alamat ini dengan operator address-of (&):
printf("Address of v: %p\n", (void*)&v);
Alamat yang dicetak akan terlihat seperti angka heksadesimal acak dan mungkin berbeda setiap kali dijalankan.

Berikut adalah program sederhana yang menunjukkan bagaimana pointer menyimpan alamat:

#include <stdio.h> int main() { int v = 0; int *y = &v; // y holds the address of v printf("Address stored in y: %p\n", (void*)y); printf("Value pointed to by y: %d\n", *y); return 0; }

Typical output:

Address stored in y: 0x7ffeefbff5c8 Value pointed to by y: 0

Mendeklarasikan Pointer

Deklarasi pointer mengikuti pola:

data_type *pointer_name;
Dimana data_type adalah tipe data yang direferensikan oleh pointer. Contoh yang valid meliputi:

int *ptr_int; // pointer to int double *ptr_double; // pointer to double char *ptr_char; // pointer to char 

Menginisialisasi Pointer

Setelah deklarasi, pointer harus diinisialisasi dengan alamat yang valid. Menggunakan pointer yang tidak diinisialisasi menyebabkan perilaku yang tidak terdefinisi. Sintaks inisialisasi:

pointer = &variable;
Contoh:
#include <stdio.h> int main() { int a = 10; int *p = &a; printf("Address in p: %p\n", (void*)p); printf("Value via p: %d\n", *p); return 0; }

Jenis Pointer dalam C

Akses Langsung vs Tidak Langsung

Akses langsung menggunakan nama variabel secara langsung; akses tidak langsung menggunakan pointer. Contoh:

#include <stdio.h> int var = 1; int *ptr = &var; printf("Direct: %d\n", var); // 1 printf("Indirect: %d\n", *ptr); // 1 *ptr = 48; // modify via pointer printf("After change, indirect: %d\n", *ptr); // 48 

Aritmetika Pointer

Ketika pointer menunjuk ke elemen array, menambahkan atau mengurangi integer memindahkan pointer sebanyak banyaknya elemen, bukan byte. Contoh:

int arr[5] = {1,2,3,4,5}; int *p = arr; // points to arr[0] for (int i = 0; i < 5; ++i) { printf("%d\n", *p); ++p; // move to next element } 

Key rules:

Pointer dengan Array

Pointer menyediakan cara ringkas untuk mengiterasi elemen array:

int a[5] = {1,2,3,4,5}; int *p = a; // same as &a[0] for (int i = 0; i < 5; ++i) { printf("%d\n", *p++); // prints 1 through 5 } 

Pointer dan String

Sebuah string adalah array dari char yang diakhiri oleh karakter null. Manipulasi pointer membuat traversal string trivial:

#include <stdio.h> #include <string.h> int main() { char str[] = "Hello Guru99!"; char *p = str; printf("First character: %c\n", *p); ++p; printf("Next character: %c\n", *p); // Print entire string for (int i = 0; i < strlen(str); ++i) { printf("%c\n", *p++); } return 0; } 

Keuntungan Pointer

Potensi Jebakan

Poin Utama

Bahasa C

  1. Menguasai Variabel dan Tipe Data Primitif C#: Panduan Lengkap
  2. Empat Pola Terbukti untuk Fungsi yang Dibuat Pengguna dalam C
  3. Menguasai Pointer C: Tutorial Praktis dengan Panduan Ahli
  4. Menguasai Pointer C++: Konsep, Contoh, dan Aplikasi Praktis
  5. Memahami 3D Printing: Prinsip, Jenis, dan Aplikasi Utama
  6. Memahami Tipe Variabel Java: Panduan Komprehensif
  7. Menguasai Pointer C: Langkah Praktis Menuju Pemrograman Lanjutan
  8. Tipe Variabel C++ Dijelaskan: Memori, Batas, dan Operasi
  9. Tipe Variabel Python: Memahami dan Menggunakan Tipe Data
  10. Pengelasan Dieja: Definisi, Jenis, dan Aplikasi