Pointer Pada Bahasa Pemrograman C++

Posting Komentar
Pointer (Penunjuk) dalam pemrograman adalah suatu variabel yang menyimpan/menunjuk alamat memori variable lainnya.

Alamat Memori Variabel

Semua variabel dalam program akan akan tersimpan dalam memori (RAM), penulisan alamat dalam memori menggunakan heksadesimal dan diawali dengan 0x. Contoh kita mendeklarasikan sebuah int x dan dimasukkan angka 10, dimana ukuran variabel tipe int adalah 4 byte, maka angka 10 tersebut tersimpan dalam 4 wadah acak misal 0x000010, 0x000011, 0x000012, 0x000013.

Reference (*)

Reference ditulis dengan lambang (*) adalah sebuah operator yang menyatakan bahwa variabel yang diberi awalan reference (*) adalah sebuah variabel pointer. Variabel pointer dapat menyimpan alamat memori dari variabel lainnya (deference), dengan fungsi yang sama yaitu int dengan int char dengan char.
#include<iostream>
using namespace std;

int main(){
int a = 10;
int *inipntr = &a;

cout<<*inipntr<<endl; //menghasilkan nilai dari variabel yang ditunjuk (10)

return 0;
}
Contoh hasil outputnya :

10

[Program finished]

Deference (&)

Deference adalah sebuah operator yang berfungsi memberitahu alamat memori suatu variabel. Variabel yang diberi operator diference (&) pada bagian output, maka output tersebut akan menampilkan alamat dari variabel tersebut.

Begitu juga variabel pointer yang penyimpan deference (&), jika lambang (*) dihilangkan, maka akan menghasilkan alamat memori dari varibel yang ditunjuk. Contoh : Nilai *inipntr adalah 20, Jika inipntr adalah 0x00000012.
#include<iostream>
using namespace std;

int main(){
int b = 20;
int *inipntr = &b;

cout<<&b<<endl; //menghasilkan alamat variabel (0x000123)
cout<<inipntr<<endl; //menghasilkan alamat memori dari variabel ug ditinjuk (0x000123)

return 0;
}
Contoh hasil outputnya :

0x7fd3c9f178
0x7fd3c9f178

[Program finished]

Setelah mempelajari reference (*) dan deference (&) berikut contoh gabungan keduanya

#include<iostream>
using namespace std;

int main(){
int b = 20;
int *inipntr = &b;

cout<<*inipntr<<endl; //menghasilkan nilai dari variabel yang ditunjuk (20)
cout<<&b<<endl; //menghasilkan alamat variabel (0x000123)
cout<<inipntr<<endl; //menghasilkan alamat memori dari variabel ug ditinjuk (0x000123)

return 0;
}
Contoh hasil outputnya :

20
0x7fd5a621a8
0x7fd5a621a8

[Program finished]
Diffa Aziz
Seorang Blogger Biasa

Related Posts

Posting Komentar