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