eg har denne kode:
#include <iostream>
#include <iterator>
#define MAXSIZE 10
using namespace std;
int main()
{
int array[MAXSIZE]; //Dette er mit array som jeg vil fylde op med integers
int * pointer = 0; //Dette er min pointer som jeg vil bruge til at udskrive det der er i array'et
//Jeg fylder her mit array op
for(int i=0; i<=10; i++)
{
array[i] = i;
cout << array[i]<< " adressen er " << &array[i] << endl;
}
cout << "Arrayet starter ved " << &array[0]<<endl;
pointer = &array[0];
cout << *pointer << " adressen er " << &pointer << endl;
}
Som giver følgende udslag
slot@Hooker:~/Programmering/C++$ g++ pointer_to_array.cpp
slot@Hooker:~/Programmering/C++$ ./a.out
0 adressen er 0xbffffa10
1 adressen er 0xbffffa14
2 adressen er 0xbffffa18
3 adressen er 0xbffffa1c
4 adressen er 0xbffffa20
5 adressen er 0xbffffa24
6 adressen er 0xbffffa28
7 adressen er 0xbffffa2c
8 adressen er 0xbffffa30
9 adressen er 0xbffffa34
10 adressen er 0xbffffa38
Arrayet starter ved 0xbffffa10
0 adressen er 0xbffffa38
slot@Hooker:~/Programmering/C++$
Jeg kan ikke regne ud hvorfor min pointer har 0xffffa38 adressen, men kan skrive 0 ud. Jeg giver jo pointeren arrayets start. Hvorfor har den så ikke samme adresse?