I C-programmering er datatyper deklarationer for variabler. Dette bestemmer typen og størrelsen af de data, der er knyttet til variabler. F.eks.
int myVar;
Her er myVar en variabel af typen int
(heltal). Størrelsen af int
er 4 bytes.
Grundlæggende typer
Her er en tabel, der indeholder almindeligt anvendte typer i C-programmering for hurtig adgang.
Type | Størrelse (bytes) | Formatspecifikator | |
---|---|---|---|
int |
mindst 2, som regel 4 | %d , %i |
|
char |
1 | %c |
|
float |
4 | %f |
|
double |
8 | %lf |
|
short int |
2 normalt | %hd |
|
unsigned int |
mindst 2, normalt 4 | %u |
|
long int |
mindst 4, normalt 8 | %ld , %li |
|
long long int |
mindst 8 | %lld , %lli |
|
unsigned long int |
mindst 4 | %lu |
|
unsigned long long int |
mindst 8 | %llu |
|
signed char |
1 | %c |
|
unsigned char |
unsigned char |
1 | %c |
long double |
mindst 10, normalt 12 eller 16 | %Lf |
int
Integertal er hele tal, der kan have både nul, positive og negative værdier, men ingen decimalværdier. For eksempel 0
, -5
, 10
Vi kan bruge int
til at deklarere en heltalsvariabel.
int id;
Her er id en variabel af typen heltal.
Du kan deklarere flere variabler på en gang i C-programmering. F.eks.
int id, age;
Størrelsen af int
er normalt 4 bytes (32 bit). Og den kan antage 232
forskellige tilstande fra -2147483648
til 2147483647
.
float og double
float
og double
bruges til at holde reelle tal.
float salary;double price;
I C kan floating-point-tallene også repræsenteres i eksponentiel. F.eks.
float normalizationFactor = 22.442e2;
Hvad er forskellen mellem float
og double
?
Størrelsen af float
(floatdatatype med enkelt præcision) er 4 bytes. Og størrelsen af double
(float-datatatype med dobbelt præcision) er 8 bytes.
char
Nøgleordet char
bruges til at deklarere variabler af karaktertypen. F.eks.
char test = 'h';
Størrelsen af karaktervariablen er 1 byte.
void
void
er en ufuldstændig type. Den betyder “ingenting” eller “ingen type”. Du kan tænke på void som fraværende.
For eksempel, hvis en funktion ikke returnerer noget, skal dens returneringstype være void
.
Bemærk, at du ikke kan oprette variabler af typen void
.
short og long
Hvis du skal bruge et stort tal, kan du bruge en typespecifikator long
. Sådan gør du:
long a;long long b;long double c;
Her kan variablerne a og b lagre heltalsværdier. Og c kan lagre et flydende tal.
Hvis du er sikker på, at der kun skal bruges et lille heltal (-interval), kan du bruge
short
.
short d;
Du kan altid kontrollere størrelsen af en variabel ved hjælp af sizeof()
-operatoren.
#include <stdio.h> int main() { short a; long b; long long c; long double d; printf("size of short = %d bytes\n", sizeof(a)); printf("size of long = %d bytes\n", sizeof(b)); printf("size of long long = %d bytes\n", sizeof(c)); printf("size of long double= %d bytes\n", sizeof(d)); return 0;}
signeret og usigneret
I C er signed
og unsigned
typemodifikatorer. Du kan ændre datalagringen af en datatype ved at bruge dem. F.eks.
unsigned int x;int y;
Her kan variablen x kun rumme nul og positive værdier, fordi vi har brugt unsigned
-modifikatoren.
Med tanke på, at størrelsen af int
er 4 bytes, kan variablen y rumme værdier fra -231
til 231-1
, mens variablen x kan rumme værdier fra 0
til 232-1
.
Andre datatyper, der er defineret i C-programmering, er:
- bool Type
- Enumereret type
- Komplekse typer
Afledte datatyper
Datatyper, der er afledt af grundlæggende datatyper, er afledte typer. For eksempel: arrays, pointere, funktionstyper, strukturer osv.
Vi vil lære om disse afledte datatyper i senere tutorials.