Hello Kitty Touching Lip

Monday, 27 January 2014


Pointer
  Pointer adalah penunjuk dari alamat dari sebuah variabel di dalam memory
Kegunaan Pointer
  Disinilah gunanya pointer, daripada memindahkan datanya lebih baik hanya mengirim address nya saja sehingga fungsi lain tersebut dapat merujuk ke address tersebut untuk mendapatkan nilai datanya. Simple !
Guna lain ? Biasanya fungsi hanya dibekali kemampuan (ninja, eh ?) untuk memakainya saja . Bagaimana jika fungsi tersebut ingin diberi kemampuan untuk mengubah nilai data yang melewatinya ? Pakai pointer.
Deklarasi Pointer
  int x = 7;
  int *u = 0;
Contoh :
 
Contoh Program:
#include <stdio.h>
int main()
{
   int myInt = 99;
  printf ("%d\n",myInt);
  printf("%p",&myInt);
return 0;
}
Output :

 
 
Contoh Program:
#include <stdio.h>
int main()
{
   int * pPointer = 0;
   int int1 = 35698;
   int int2 = 77;
  pPointer = &int1;
  printf("alamat pointer di memory %p\n",&pPointer);
  printf("alamat variabel int1 di memory adalah %p isi variabel int1 %d\n",&int1,int1);
printf("alamat variabel int2 di memory adalah %p isi variabel int2 %d\n",&int2,int2);    
 printf("pointer ke alamat variabel int2 %p dan isi dari pointer adalah %d",pPointer,*pPointer);

return 0;
}
Output :
 
 
Mengubah isi variabel dengan pointer :
#include <stdio.h>
int main()
{
   int int1 = 99;
   int * pInt = 0;
            printf("nilai variabel int1 = %d\n",int1);
  printf("nilai alamat pointer %p\n",&pInt);
  pInt=&int1;
  *pInt=11;
  printf("nilai variabel int1 adalah %d",int1);
return 0;
}
Output :
  
 
Pointers di Array :
#include <stdio.h>
int main()
{
  int Marks [10]= {1,2,3,4,5,6,7,8,9,0};
  printf("%p\n",Marks);
  printf("%p\n",&Marks[1]);
  printf("%p",*Marks);
return 0;
}
Output :

Perbedaan Array dengan Pointer :
‘In  C++ pointers and array are closely related. The name of and array can be used as  a pointer  to its initial element. Taking a pointer to the element one beyond the end of an array is graduanteed to work. This is important for Mny LGORITHMS. Howeverr, since such a pointer does not in fact point to an element of the array, it ,may not be used for reading and writing. The result of taking the address ofv the element before the initial element is undefined and should be avoided. On some machine architectures, arrays are often allocated on manhice addressing boundaries, so “one before the initial ‘ element “ simple doesn’t make sense,’’

No comments:

Post a Comment