Pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer sebenarnya sangat terkait dengan "Abstract C Machine", yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bagian : automatic memory, static memory dan free memory. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilai alamat.Hal ini disebut dengan Random Access Memory.--- Penggunaan Awal PointerJika variabel merupakan isi memori, dan untuk mengakses isi memori tersebut diperlukan address, lalu bagaimana cara kita mengetahui alamat dari suatu variabel ? Jawabannya adalah : untuk kebanyakan kasus kita sama sekali tidak perlu tahu alamat dari sebuah variabel. Untuk mengakses sebuah variabel kita hanya perlu nama dari variabel tersebut. Tugas kompiler lah yang mentranslasikan nama ke alamat mesin yang diperlukan oleh komputer.Type dari variabel pointer y adalah int, yaitu nama : novridianto saputranim : 12097045mengikuti type dari variabel x. Untuk menandakan y adalah pointer, di depan variabel y pada saat deklarasi diberi tanda bintang (*) dan di depan x saya beri tanda and (&) yaitu return alamat dari x. Dengan demikian, jika kita panggil y tanpa bintang (*) maka kita akan mendapat alamat dari x, sedangkan jika kita panggil y dengan bintang (*) yaitu *y maka kita akan mendapatkan value dari x.
/* Pointer
*/
#include
int
main()
{
int *x; int y,z=0; y=125; // menggunakan alamat y x=&y; //proses output
cout<<"Nilai dari x (*x) = "<<*x; cout<<"\nAlamat dari x (x) = "<<<"\n\nNilai dari y (y) = "<
int
main()
{ int x[2]={100,500};
int *p;
char A[6]={'A','P','K','B','R','.'};
char *P; //untuk tipe data char P=&A[0];
cout<<" untuk="" tipe="" data="" n=""><<*P; P=P+1;
cout<<*P; P=P-1;
cout<<*P<<" "; P=P+2;
cout<<*P; P=P-2;
cout<<*P; P=P+3;
cout<<*P; P=P-3;
cout<<*P; P=P+4;
cout<<*P<
//untuk tipe data int
cout<<"Untuk Tipe Data Int\n"; p=&x[0];
cout<<"Rp. "<<*p; P=&A[5];
cout<<*P; p=p+1;
cout<<*p<<*P;
cout<<*p<
system("pause");} /*
Penjelasan : Pointer Aritmetika adalah pointer yang dapat menempati alamat array dalamsebuah variabel. Pointer Aritmetika hanya dapat melakukanpenjumlahan dan pengurangan dalam alamat Arraydan tidak mendukung operator selain penjumlahandan pengurangan. P=&A[5]; : Selalu ingat bahwa indek Array selalu diawali oleh 0. sehingga untuk memanggil karakter yang ke 6 alamatnya adalah [5]. Code by Krofz the member of Video Games Indonesia (www.videogamesindonesia.com).*/