Language:

Search

Pemahaman pointer bahasa C

  • Share this:
post-title

variabel Pointer adalah variabel yang menyimpan alamat memori dari sebuah variabel beberapa lainnya.

int var = 10;

Di sini kita memiliki variabel "var" yang tipe datanya adalah integer dan nilainya adalah 10.ini berarti setiap kali kita akan menggunakan "var" dalam program kita maka kita gunakan 10. Jadi,setiap kali komputer akan mencari "var" akan mencari alamat yang sesuai dalam memori.
Pointer adalah cara untuk komunikasi dengan memory address & Dan * adalah dua operator digunakan dalam operasi pointer.

& Berarti "address" 

Code:
int main (void) {

int var;
printf("Input an interger -> ");
scanf("%d",&var);
printf("Value of interger -> %d\n",var);

return 0;

}


Di sini, di pernyataan scanf ("% d", & var); scanf () akan mengambil input dari baris perintah dan akan menyimpan nilai bahwa pada alamat "var".
inputan addres yang akan menyimpan nilai yang diberikan oleh user dalam blok memori yang dimulai dari 0xbfd025f0

* Berarti "pointer"

int * varPtr;
* VarPtr berarti variabel ini akan menghubungi alamat dari variabel.coba liat baris berikut ini
varPtr = &var;

Ketika operator unary (&) dikaitkan dengan variabel maka itu memberikan alamat variabel tersebut.Dalam pernyataan di atas alamat dari variabel "var" adalah ditetapkan ke "varPtr" variabel pointer. Itu berarti sekarang nilai yang dimiliki oleh varPtr adalah 0xbfd025f0,


Quote:
varPtr ||var Variable Name
0xbfd025f0 ||10 Value Held
0xa0302cd0 ||0xbfd025f0 Memory Address of Variable


varPtr juga variabel yang memiliki sebuah alamat di memori.Ketika operator unary (*) dikaitkan dengan variabel "varPtr" seperti varPtr *,
berarti sekarang menunjuk ke nilai yang dipegang oleh varPtr (0xbfd025f0) Code:

Code:

int main (void) {

int var = 10;
int *varPtr;
varPtr = &var; // assign the memory address of var to varPtr

printf("Value of var -> %d\n",var);
printf("Value of var -> %d\n",*varPtr);

return 0;

}

 

OUTPUT
Nilai var -> 10
Nilai var -> 10

Kedua printf () akan memberikan kita nilai 10 sebagai output. Dalam 1 printf () kita langsung mencetak nilai dari "var" dan dalam 2 printf ()
yang kita lakukan secara tidak langsung, berarti dengan menggunakan pointer. semoga ajah tiap harinya kita punya ide baru tentang pointer.
fungsi cara yang sama juga memiliki alamat memori dan menggunakan alamat memori jika dapat mememanggil mereka. void fun (void) {

----------------
}

paling nggak () bisa menempati beberapa blok memori dan '&' akan memberikan nilai awal dari blok memori.

Code:
#include

void msg (void) {
printf("Inside msg function\n");
}

int calSum(int x, int y) {

printf("Value of x -> %d\n",x);
printf("Value of y -> %d\n",y);

return (x+y);

}

int main (void) {

int var, sum;
var = 10;

int *varPtr;
void (*msgPtr)(void);
printf("Value of var -> %d\n".*varPtr);
sum = (*sumPtr)(5,4);
printf("Sum of two numbers -> %d\n",sum);
return 0;
}


Value of var -> 10
Inside msg function
Value of x -> 4
Value of y -> 5
Sum of two numbers -> 9

Armin

Armin

IT Dev, SEO & Digital Marketing Specialist with 7+ years experience, Coder, Sys Admin, Designer, Blogger