Tutorial C Pointer Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari Apa pointer?,Cara menggunakan pointer?,C NULL pointer,C pointer Rinci,

C Pointer

Belajar C pointer bahasa yang mudah dan menyenangkan. Melalui pointer, Anda dapat menyederhanakan pelaksanaan beberapa tugas pemrograman C, ada beberapa tugas, seperti alokasi memori dinamis, tidak ada pointer adalah tidak dapat dilaksanakan. Jadi, saya ingin menjadi programmer C yang baik, belajar pointer diperlukan.

Seperti yang Anda ketahui, masing-masing variabel memiliki lokasi memori, setiap lokasi memori mendefinisikan alamat-operator akses dapat menggunakan tanda hubung (&), yang mewakili sebuah alamat di memori. Perhatikan contoh berikut, yang akan menentukan output alamat variabel:

#include <stdio.h>

int main ()
{
   int  var1;
   char var2[10];

   printf("var1 ๅ˜้‡็š„ๅœฐๅ€๏ผš %x\n", &var1  );
   printf("var2 ๅ˜้‡็š„ๅœฐๅ€๏ผš %x\n", &var2  );

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

var1 ๅ˜้‡็š„ๅœฐๅ€๏ผš bff5a400
var2 ๅ˜้‡็š„ๅœฐๅ€๏ผš bff5a3f6

Sebagai contoh di atas, kita memahami apa alamat memori dan bagaimana untuk mengaksesnya. Mari kita lihat apa yang pointer.

Apa pointer?

Sebuah pointer adalah variabel yang nilainya adalah alamat dari variabel lain, yaitu, alamat langsung dari lokasi memori.Sebelum Seperti variabel atau konstanta lain, Anda harus menggunakan alamat memori pointer variabel lain, dinyatakan. Bentuk umum dari variabel pointer deklarasi adalah:

type *var-name;

Di sini, jenis adalah pointer ke tipe dasar, itu harus menjadi valid C tipe data,var-nama adalah nama dari variabel pointer. Digunakan untuk menyatakan pointer tanda bintang * perkalian menggunakan tanda bintang adalah sama. Namun, dalam pernyataan ini, tanda bintang digunakan untuk menentukan variabel adalah pointer. Berikut ini adalah deklarasi pointer yang valid:

int    *ip;    /* ไธ€ไธชๆ•ดๅž‹็š„ๆŒ‡้’ˆ */
double *dp;    /* ไธ€ไธช double ๅž‹็š„ๆŒ‡้’ˆ */
float  *fp;    /* ไธ€ไธชๆตฎ็‚นๅž‹็š„ๆŒ‡้’ˆ */
char   *ch     /* ไธ€ไธชๅญ—็ฌฆๅž‹็š„ๆŒ‡้’ˆ */

Semua pointer tipe data aktual dari nilai, apakah itu integer, float, string, atau jenis data lain yang sama, adalah angka heksadesimal mewakili alamat memori lama. Satu-satunya perbedaan antara berbagai jenis data pointer, pointer adalah variabel atau konstanta tipe data.

Cara menggunakan pointer?

Akan sering menggunakan pointer ketika tindakan berikut: mendefinisikan sebuah variabel pointer, alamat variabel ditugaskan untuk pointer, mengakses nilai variabel pointer alamat yang tersedia. Hal ini dilakukan dengan menggunakan operator* unary untuk mengembalikan nilai variabel terletak di alamat operand ditentukan.Contoh berikut berhubungan dengan tindakan ini:

#include <stdio.h>

int main ()
{
   int  var = 20;   /* ๅฎž้™…ๅ˜้‡็š„ๅฃฐๆ˜Ž */
   int  *ip;        /* ๆŒ‡้’ˆๅ˜้‡็š„ๅฃฐๆ˜Ž */

   ip = &var;  /* ๅœจๆŒ‡้’ˆๅ˜้‡ไธญๅญ˜ๅ‚จ var ็š„ๅœฐๅ€ */

   printf("Address of var variable: %x\n", &var  );

   /* ๅœจๆŒ‡้’ˆๅ˜้‡ไธญๅญ˜ๅ‚จ็š„ๅœฐๅ€ */
   printf("Address stored in ip variable: %x\n", ip );

   /* ไฝฟ็”จๆŒ‡้’ˆ่ฎฟ้—ฎๅ€ผ */
   printf("Value of *ip variable: %d\n", *ip );

   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

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

C NULL pointer

Pada saat deklarasi variabel, jika tidak alamat yang tepat dapat diberikan, menetapkan nilai NULL untuk variabel pointer adalah praktek pemrograman yang baik. nilai pointer fu NULL disebut pointernol.

Sebuah pointer NULL didefinisikan di perpustakaan standar nol konstanta. Perhatikan program berikut:

#include <stdio.h>

int main ()
{
   int  *ptr = NULL;

   printf("ptr ็š„ๅ€ผๆ˜ฏ %x\n", ptr  );
 
   return 0;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

ptr ็š„ๅ€ผๆ˜ฏ 0

Pada kebanyakan sistem operasi, program tidak memungkinkan akses ke alamat memori 0, karena memori dicadangkan untuk sistem operasi. Namun, alamat memori 0 memiliki arti khusus, itu menunjukkan bahwa pointer tidak menunjuk ke lokasi memori yang dapat diakses. Namun menurut konvensi, jika pointer berisi nilai null (nilai nol), diasumsikan bahwa itu tidak menunjuk ke sesuatu.

Untuk memeriksa null pointer, Anda dapat menggunakan jika pernyataan, sebagai berikut:

if(ptr)     /* ๅฆ‚ๆžœ p ้ž็ฉบ๏ผŒๅˆ™ๅฎŒๆˆ */
if(!ptr)    /* ๅฆ‚ๆžœ p ไธบ็ฉบ๏ผŒๅˆ™ๅฎŒๆˆ */

C pointer Rinci

Dalam C, ada banyak pointer konsep terkait yang sangat sederhana, tetapi sangat penting. Di bawah ini adalah beberapa konsep penting yang terkait dengan pointer C programmer harus jelas:

ๆฆ‚ๅฟตๆ่ฟฐ
ๆŒ‡้’ˆ็š„็ฎ—ๆœฏ่ฟ็ฎ— ๅฏไปฅๅฏนๆŒ‡้’ˆ่ฟ›่กŒๅ››็ง็ฎ—ๆœฏ่ฟ็ฎ—๏ผš++ใ€--ใ€+ใ€-
ๆŒ‡้’ˆๆ•ฐ็ป„ ๅฏไปฅๅฎšไน‰็”จๆฅๅญ˜ๅ‚จๆŒ‡้’ˆ็š„ๆ•ฐ็ป„ใ€‚
ๆŒ‡ๅ‘ๆŒ‡้’ˆ็š„ๆŒ‡้’ˆ C ๅ…่ฎธๆŒ‡ๅ‘ๆŒ‡้’ˆ็š„ๆŒ‡้’ˆใ€‚
ไผ ้€’ๆŒ‡้’ˆ็ป™ๅ‡ฝๆ•ฐ ้€š่ฟ‡ๅผ•็”จๆˆ–ๅœฐๅ€ไผ ้€’ๅ‚ๆ•ฐ๏ผŒไฝฟไผ ้€’็š„ๅ‚ๆ•ฐๅœจ่ฐƒ็”จๅ‡ฝๆ•ฐไธญ่ขซๆ”นๅ˜ใ€‚
ไปŽๅ‡ฝๆ•ฐ่ฟ”ๅ›žๆŒ‡้’ˆ C ๅ…่ฎธๅ‡ฝๆ•ฐ่ฟ”ๅ›žๆŒ‡้’ˆๅˆฐๅฑ€้ƒจๅ˜้‡ใ€้™ๆ€ๅ˜้‡ๅ’ŒๅŠจๆ€ๅ†…ๅญ˜ๅˆ†้…ใ€‚
C Pointer
10/30