Pointer dan array memiliki hubungan yang dekat dimana nama array sebenarnya sudah menyatakan alamat sehingga tanda & tidak diperlukan ketika pointer menunjuk ke array. Seluruh elemen array dapat diakses melalui pointer dengan mengubah isi variabel pointer sesuai dengan alamat masing-masing elemen array.
2. Pointer dan ArrayPointer dan Array
Pointer dan array memiliki hubungan yang dekat. Secara internalPointer dan array memiliki hubungan yang dekat. Secara internal
array juga menyatakan alamat. Misalnya, didefinisikan :array juga menyatakan alamat. Misalnya, didefinisikan :
AgarAgar ptglptgl menunjuk ke array, diperlukan pernyataan berupa :menunjuk ke array, diperlukan pernyataan berupa :
Perhatikan tidak ada tanda & di depanPerhatikan tidak ada tanda & di depan tgl_lahirtgl_lahir . Ini disebabkan. Ini disebabkan
nama array sebenarnya sudah menyatakan alamat. Oleh karena itunama array sebenarnya sudah menyatakan alamat. Oleh karena itu
tanda & tidak diperlukan.tanda & tidak diperlukan.
int tgl_lahir[] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir;
3. Pointer dan ArrayPointer dan Array
Pernyataan seperti :Pernyataan seperti :
DimanaDimana ptglptgl adalah pointer danadalah pointer dan tgl_lahirtgl_lahir
adalah array, identik dengan :adalah array, identik dengan :
ptgl = tgl_lahir;
ptgl = &tgl_lahir[0];
4. Pointer dan ArrayPointer dan Array
//program81.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int tgl_lahir[] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir; //ptgl menunjuk ke array
cout<<"Nilai yang ditunjuk oleh ptgl : ";
cout<<*ptgl<<endl;
cout<<"Nilai dari tgl_lahir[0] : ";
cout<<tgl_lahir[0]<<endl;
getch();
}
5. Pointer dan ArrayPointer dan Array
Seluruh elemen array dapat ditampilkan denganSeluruh elemen array dapat ditampilkan dengan
pernyataan :pernyataan :
BentukBentuk tgl_lahir[i]tgl_lahir[i] dapat diubah menjadi notasi pointerdapat diubah menjadi notasi pointer
seperti berikut :seperti berikut :
Contoh program :Contoh program :
for(int i=0; i<3; i++)
cout<<tgl_lahir[i]<<endl;
for(int i=0; i<3; i++)
cout<<*(ptgl + i)<<endl;
6. Pointer dan ArrayPointer dan Array
//program82.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int tgl_lahir[] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir; //ptgl menunjuk ke array
for(int i=0; i<3; i++)
cout<<*(ptgl + i)<<endl;
getch();
}
7. Pointer dan ArrayPointer dan Array
Perlu diketahui, pada notasi seperti :Perlu diketahui, pada notasi seperti :
tgl_lahir + itgl_lahir + i tidak berarti :tidak berarti :
Tetapi dengan bijaksana dapat mengetahui bahwaTetapi dengan bijaksana dapat mengetahui bahwa
tgl_lahir + itgl_lahir + i berarti :berarti :
*(ptgl + i)
ptgl + (i byte)
ptgl + (ukuran tipe elemen ptgl)*i
9. Pointer dan ArrayPointer dan Array
Seluruh elemen array juga dapat diaksesSeluruh elemen array juga dapat diakses
melalui variabel pointer.melalui variabel pointer.
Salah satu caranya yaitu denganSalah satu caranya yaitu dengan
mengubah isi variabel pointer sesuaimengubah isi variabel pointer sesuai
dengan alamat masing-masing elemendengan alamat masing-masing elemen
array.array.
10. Pointer dan ArrayPointer dan Array
//program83.cpp
#include <iostream.h>
#include <conio.h>
void main()
{
int tgl_lahir[] = {24, 6, 1965};
int *ptgl;
ptgl = tgl_lahir;
for(int i=0; i<3; i++)
{
cout<<"ptgl = "<<ptgl<<endl;
cout<<"*ptgl = "<<*ptgl<<endl;
ptgl++;
}
getch();
}