I informasjonsteknologi er en datatype en definisjon av hvilke data som kan lagres i en gitt variabel og hvordan disse dataene skal leses og lagres. Man kan si datatypen er dataenes mest grunnleggende metadata. Datatyper er sentralt i de fleste programmeringsspråk, men er egentlig et hjelpemiddel til å abstrahere måten data er lagret på. Dette er upraktisk hvis programmereren ønsker full kontroll, men problemet kan omgås ved å omdefinere datatypen (typekonvertering) eller lage en peker av en annen datatype til det samme minneområdet. Som navnet antyder, er datatypen strengt tatt en egenskap ved dataene som er lagret, mens programmeringsspråk knytter det til variabelen eller minneområdet der det er lagret. I objektorientert programmering finnes det komplekse datatyper som er bygd inn i objekter, som er enda et nivå av abstraksjon. Komplekse datatyper er ikke nødvendigvis tilgjengelige på en forutsigbar måte annet enn gjennom objektets funksjoner. Et vanlig eksempel på en kompleks datatype er strenger.

Programmeringsparadigmer rediger

I lavnivåprogrammering kan man ha lov å late som tilfeldige data har en valgt datatype. Eksempelet nedenfor er et program skrevet i C som skriver ut inndata i form av tallverdiene av hver byte, separert med mellomrom. Legg merke til at programmet er fritt for eksplisitt og implisitt typekonvertering.

#include<stdio.h>

int main(int argc, char *argv[]){
  int ord=1;                            //ord 0 er programmet selv, ikke ta med
  while(ord<argc){                      //les alle ord
    int bokstav=0;                      //start hvert ord fra starten
    while(argv[ord][bokstav]!='\0'){    //les til slutten av hvert ord
      printf("%d ", argv[ord][bokstav]);//tolk bokstaven som tall og skriv tallet
      bokstav++;
    }
    printf("\n");                       //linjeskift etter hvert ord
    ord++;
  }
  return 0;                             //avslutt
}