Operator dan Operasi Pointer




Operator Pointer
      1.       & (Ampersand)
  • Operator & merupakan operator alamat.
  • Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time.
  • Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang berarti "address of".
  • Contoh : ted = &input;
Penulisan tersebut berarti akan memberikan variable ted alamat dari variable input. Karena variabel input diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memori, bukan isi variable.
      2.       * (Asterisk)
  • Operator * merupakan operator reference.
  • Dengan menggunakan pointer,kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by".
  • Contoh :
    beth = *ted;
    (dapat dikatakan:
    "beth sama dengan nilai yang ditunjuk oleh ted")

Contoh deklarasi variabel biasa dan pointer:
      1.  Variabel biasa
     Int value1 = 4;
     Float value2 = 3.5;
     Char name[10] = “anton”;  //array of char (string)
      2.  Variabel pointer
     Int *value_p1;                                   //dangling pointer
     Int *value_p2         = &value1;         //pointing to data type int
     Char *value_p3     = name;              //pointing to array of char
     Char *value_p4     = &name[0];
Operasi Pointer
  1. Operasi Penugasan
Suatu variabel pointer seperti halnya variabel yang lain, juga bisa mengalami operasi penugasan. Nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain.

x1 = &y

x2= x1
The address of the variable y is copied to x1
The contents of the variable x1 copied to the variable x2





          Contoh Program:

    #include<iostream>
    using namespace std;

    int main ()
    {
        int *x1, *x2, y;
      
        y = 5;
        x1 = &y;
        x2 = x1;
      
        //value of y
        cout<<" The value of the variable y is "<<y<<endl;  
        //the address of the variable y that copied to x1
        cout<<" The addres of the variable y is "<<x1<<endl;
        //get value of variable y from *x2
        cout<<" The value of the variable y is "<<*x2<<endl;
      
    }
  1. Operasi Aritmatika
  • Pada pointer dapat dilakukan operasi aritmatika yang akan menunjuk suatu alamat memori baru.
  • Hanya nilai integer saja yang bisa dioperasikan pada variabel pointer.
  • Biasanya hanya operasi penambahan/pengurangan saja.
  • Misal pointer X bertipe int  (2 bytes), maka X+1 akan menunjuk pada alamat memori sekarang (mis. 1000) ditambah sizeof(X), yaitu 2, jadi 1002.

           
       Contoh Program:
#include<iostream>
using namespace std;

int main(void){
int dateofbirth[] = {29, 5, 1996};
int *pdate;

//*pdate contains the address of dateofbirth
pdate = dateofbirth;

cout<<" Accessed using a pointer\n";
cout<<" Date = "<< *pdate;
cout<<"\n Month = "<< *(pdate + 1);
cout<<"\n Year = "<< *(pdate + 2);

cout<<"\n Accessed using an array\n";
cout<<" Date = "<< dateofbirth[0];
cout<<"\n Month = "<< dateofbirth[1];
cout<<"\n Year = "<< dateofbirth[2];

}
  1. Operasi Logika
           Yaitu operasi yang menghasilkan nilai true dan false. Beberapa macam operator logika          diantaranya: && (AND), || (OR), ! (NOT), < (KURANG DARI), > (LEBIH DARI), <= (KURANG DARI SAMA DENGAN), >= (LEBIH DARI SAMA DENGAN, == (SAMA DENGAN),  != (TIDAK SAMA DENGAN)
Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment