Pemahaman pointer bahasa C


pointer



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<sys/sock.h>

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
0.00 / 0 votes

In order to comment, please sign in

Comments


Loading

Testimonials


User Menu