Pointer adalah variabel yang bisa menyimpan alamat memory suatu penyimpanan data. Kalau misal kita punya variabel x,
int x;
maka komputer akan menyediakan sebuah tempat penyimpanan data yang bernama x yang bisa diisi oleh data/nilai yang bertipe integer. Pada saat komputer menyediakan tempat x, maka pasti ada alamat memorinya. Naah, variabel yang bisa menyimpan alamat memori dari suatu penyimpanan data disebut dengan variabel pointer.
Untuk mendeklarasikan variabel pointer diawali dengan anda asterik (*). Misal:
int *ptr;
Artinya, kita punya sebuah variabel pointer bernama ptr yang bisa menyimpan alamat memori dari suatu penyimpanan data (variabel) yang bertipe integer.
Analogi sederhana, misalkan kita membangun rumah. Rumah diibaratkan sebagai variabel yang isinya adalah keluarga. Naah, pada saat kita membangun rumah pasti ada alamat dimana rumah kita dibangun. Misal Jl. A.H. Nasution No. 105 Cibiru Bandung. Naah, variabel yang bisa menyimpan alamat itu adalah variabel pointer.
Agar variabel pointer ptr menyimpan alamat variabel x berada, maka harus diarahkan dengan cara:
ptr = &x;
Agar variabel pointer ptr menyimpan alamat variabel x berada, maka harus diarahkan dengan cara:
ptr = &x;
main() { int var; int *ptr; var = 5; ptr = &var; //Mengisi var pointer ptr cout << "var = " << var << endl; cout << "ptr = " << ptr << endl; //Mengakses alamat var cout << "&var = " << &var << endl; //Mengakses nilai yg ditunjuk pointer cout << "*ptr = " << *ptr << endl; *ptr = 7; //Mengubah nilai melalui pointer cout << endl; cout << "var = " << var << endl; cout << "ptr = " << ptr << endl; cout << "&var = " << &var << endl; cout << "*ptr = " << *ptr << endl; getch(); } |
//Array pointer main() { int bil[5]; int *ptr; ptr = bil; //ptr = &bil[0] *ptr = 10; ptr++; *ptr = 20; ptr = &bil[2]; *ptr = 30; ptr = bil + 3; *ptr = 40; ptr = bil; *(ptr+4) = 50; for (int n = 0; n < 5; n++) cout << bil[n] << " "; getch(); } |
//Pointer index #include main() { char str[20] = "hello world"; char *ptr; ptr = str; for(int i = 0; ptr[i]; i++) ptr[i] = toupper(ptr[i]); cout << ptr; getch(); } |
//Pointer dalam pointer main() { int x, *p, **q; x = 10; p = &x; q = &p; cout << **q; getch(); } |
0 komentar:
Posting Komentar