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

Menguasai Pointer C: Langkah Praktis Menuju Pemrograman Lanjutan

Pointer dalam C mudah dan menyenangkan untuk dipelajari. Beberapa tugas pemrograman C dilakukan lebih mudah dengan pointer, dan tugas lain, seperti alokasi memori dinamis, tidak dapat dilakukan tanpa menggunakan pointer. Jadi menjadi perlu untuk mempelajari pointer untuk menjadi programmer C yang sempurna. Mari kita mulai mempelajarinya dengan langkah yang mudah dan sederhana.

Seperti yang Anda ketahui, setiap variabel adalah lokasi memori dan setiap lokasi memori memiliki alamat yang didefinisikan yang dapat diakses menggunakan operator ampersand (&), yang menunjukkan alamat dalam memori. Pertimbangkan contoh berikut, yang mencetak alamat variabel yang didefinisikan −

Live Demo
 #include <stdio.h> int main () { int var1; char var2[10]; printf("Address of var1 variable: %x\n", &var1 ); printf("Address of var2 variable: %x\n", &var2 ); return 0; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 Address of var1 variable: bff5a400 Address of var2 variable: bff5a3f6 

Apa itu Pointer?

Sebuah pointer adalah variabel yang nilainya adalah alamat variabel lain, yaitu, alamat langsung dari lokasi memori. Seperti variabel atau konstanta lain, Anda harus mendeklarasikan pointer sebelum menggunakannya untuk menyimpan alamat variabel apa pun. Bentuk umum dari deklarasi variabel pointer adalah −

 type *var-name; 

Di sini, type adalah tipe dasar pointer; harus merupakan tipe data C yang valid dan var-name adalah nama variabel pointer. Bintang * yang digunakan untuk mendeklarasikan pointer adalah bintang yang sama yang digunakan untuk perkalian. Namun, dalam pernyataan ini bintang digunakan untuk menandai variabel sebagai pointer. Lihat beberapa deklarasi pointer yang valid di bawah −

 int *ip; /* pointer to an integer */ double *dp; /* pointer to a double */ float *fp; /* pointer to a float */ char *ch /* pointer to a character */ 

Tipe data sebenarnya dari nilai semua pointer, baik integer, float, karakter, atau lainnya, sama, yaitu angka heksadesimal panjang yang mewakili alamat memori. Perbedaannya antara pointer dengan tipe data yang berbeda adalah tipe data dari variabel atau konstanta yang ditunjuk oleh pointer.

Cara Menggunakan Pointer?

Ada beberapa operasi penting, yang akan kita lakukan dengan bantuan pointer sangat sering. (a) Kami mendefinisikan variabel pointer, (b) menetapkan alamat variabel ke pointer dan (c) akhirnya mengakses nilai di alamat yang tersedia di variabel pointer. Ini dilakukan dengan menggunakan operator unary * yang mengembalikan nilai variabel yang terletak di alamat yang ditentukan oleh operandnya. Contoh berikut menggunakan operasi ini −

Live Demo
 #include <stdio.h> int main () { int var = 20; /* actual variable declaration */ int *ip; /* pointer variable declaration */ ip = &var; /* store address of var in pointer variable*/ printf("Address of var variable: %x\n", &var ); /* address stored in pointer variable */ printf("Address stored in ip variable: %x\n", ip ); /* access the value using the pointer */ printf("Value of *ip variable: %d\n", *ip ); return 0; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 Address of var variable: bffd8b3c Address stored in ip variable: bffd8b3c Value of *ip variable: 20 

NULL Pointers

Selalu merupakan praktik yang baik untuk menetapkan nilai NULL ke variabel pointer jika Anda tidak memiliki alamat yang tepat untuk ditetapkan. Ini dilakukan pada waktu deklarasi variabel. Pointer yang ditetapkan NULL disebut null pointer.

NULL pointer adalah konstanta dengan nilai nol yang didefinisikan dalam beberapa perpustakaan standar. Pertimbangkan program berikut −

Live Demo
 #include <stdio.h> int main () { int *ptr = NULL; printf("The value of ptr is : %x\n", ptr ); return 0; } 

Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −

 The value of ptr is 0 

Dalam sebagian besar sistem operasi, program tidak diizinkan untuk mengakses memori di alamat 0 karena memori tersebut dicadangkan oleh sistem operasi. Namun, alamat memori 0 memiliki makna khusus; itu menandakan bahwa pointer tidak dimaksudkan untuk menunjuk ke lokasi memori yang dapat diakses. Namun menurut konvensi, jika pointer berisi nilai null (nol), diasumsikan menunjuk ke tidak ada apa-apa.

Untuk memeriksa null pointer, Anda dapat menggunakan pernyataan 'if' sebagai berikut −

 if(ptr) /* succeeds if p is not null */ if(!ptr) /* succeeds if p is null */ 

Pointer dalam Detail

Pointer memiliki banyak konsep yang mudah dan sangat penting untuk pemrograman C. Berikut adalah konsep pointer penting yang harus jelas bagi setiap programmer C −

Sr.No. Konsep & Deskripsi
1 Pointer arithmetic

Ada empat operator aritmetika yang dapat digunakan dalam pointer: ++, --, +, -

2 Array of pointers

Anda dapat mendefinisikan array untuk menampung sejumlah pointer.

3 Pointer to pointer

C memungkinkan Anda untuk memiliki pointer pada pointer dan seterusnya.

4 Passing pointers to functions in C

Melewatkan argumen oleh referensi atau oleh alamat memungkinkan argumen yang diteruskan untuk diubah dalam fungsi pemanggil oleh fungsi yang dipanggil.

5 Return pointer from functions in C

C memungkinkan fungsi untuk mengembalikan pointer ke variabel lokal, variabel statis, dan memori yang dialokasikan secara dinamis juga.


Bahasa C

  1. Variabel, Konstanta, dan Literal C: Panduan Lengkap
  2. Memahami Kelas Penyimpanan C: Lingkup, Umur, dan Kinerja
  3. Menguasai Pointer C: Tutorial Praktis dengan Panduan Ahli
  4. Memahami Hubungan Antara Array dan Pointer dalam C
  5. Pemrograman C: Meneruskan Alamat dan Pointer ke Fungsi – Panduan Praktis
  6. Menguasai Struct dan Pointer C: Panduan Praktis
  7. Menguasai Kata Kunci Global Python: Kapan dan Cara Menggunakannya
  8. Menguasai Pointer C++: Konsep, Contoh, dan Aplikasi Praktis
  9. Variabel, Tipe Data, dan Konstanta dalam C – Panduan Praktis
  10. Pointer dalam C: Panduan Lengkap tentang Tipe, Penggunaan, dan Praktik Terbaik