Pointere i C er en lidt svære at forstå, så vi tager det et skridt af gangen:
char *p;
p en pointer til en char eller til en streng af char's, kun programmøren ved om det er det ene eller det andet, p peger ikke på noget endnu.
char a[10] = "hest";
a er et array af 10 char's initialiseret til "hest".
a[0] er en char der indeholder char'en 'h'
p = a;
her sættes p til at pege på array'et a
p[0] (som er det samme som *p) er en char som er det samme som a[0] (som stadig er 'h')
p er en pointer der peger på a som er "hest"
char aa[10][20] =
{ "mis",
"kanin"} ;
aa er et array af array af char.
aa[0] er et array af char (der er initialiseret til "mis");
aa[0][0] er en char (som indeholder 'm')
p = aa[1];
p er en pointer til char som peger på aa[1] som er "kanin"
*p = en en char som indeholder a[1][0] som er 'k'
p[2] er det samme som a[1][2] som er 'n'
DVS: det hedder ikke
*char db_ptr;//pointer
men
char *db_ptr; //pointer
Det hedder ikke
db_ptr = &database[udtraek];
men
db_ptr = database[udtræk];