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.
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