Et kompakt eksempel som viser bruk av pekere i C:
#include <stdio.h>
int main() {
// Variabler for dette kodeeksemplet
int tall = 10; // int: størrelse lik 4 bytes på PC
int tabell[3] = {11, 12, 13};
// --------------------------------------------------------------------
// EKSEMPLER PÅ BRUK AV PEKERE:
// --------------------------------------------------------------------
// DEKLARERING:
int *peker1;
int *peker2, *peker3; // to samtidig
// INITIALISERING:
peker1 = &tall; // peker til variabelen 'tall' (med verdi 10)
peker2 = tabell; // peker til første elementet i 'tabell'
peker2 = &tabell[0]; // samme resultat som over (alternativ måte)
peker3 = &tabell[1]; // peker til andre elementet i 'tabell'
peker3 = tabell+1; // samme resultat som over (alternativ måte)
peker3 = tabell+2; // peker til tredje og siste elementet i 'tabell'
// DEKLARERING OG INITIALISERING SAMTIDIG:
int *peker4 = &tall; // peker til variabelen 'tall' (med verdi 10)
int *peker5 = tabell; // peker til første elementet i 'tabell'
// INKREMENTERING OG DEKREMENTERING:
peker5++; // peker til andre elementet i 'tabell'
peker5--; // peker til første elementet i 'tabell' igjen
peker5 += 1; // samme resultat som øverst (alternativ måte)
peker5 -= 1; // samme resultat som nestøverst (alternativ måte)
// DIFFERANSE:
int differanse =
peker3 - peker5; // 2, fordi peker3 = siste element og peker5 = første element
// printf("%d\n", differanse); // kontroll
// SAMMENLIGNING:
tabell == peker2; // 1 (sann), begge inneholder adressen til første element
tabell == peker5; // 1 (sann), begge inneholder adressen til første element
peker3 == peker5; // 0 (usann), adressen til element 3 er ikke lik element 1
tabell == &tabell[0]; // 1 (sann), begge har samme adresse
&peker1 == &tall; // 0 (usann), pekerens adresse er ikke lik adressen til 'tall'
// printf("%d %d %d %d %d\n", tabell == peker2, tabell == peker5, peker3 == peker5, tabell == &tabell[0], &peker1 == &tall); // kontroll
// INDIREKSJON (AVLESING):
*peker1; // 10
*peker2; // 11
*peker3; // 13
*peker4; // 10
*peker5; // 11
*(tabell+1); // 12
*(tabell+2); // 13
// printf("%d %d %d %d %d %d %d\n", *peker1, *peker2, *peker3, *peker4, *peker5, *(tabell+1), *(tabell+2)); // kontroll
return 0;
}
TBC

