C Variabel, Datatyper, Konstanter
โก Smart opsummering
Variabler, datatyper og konstanter danner grundlaget for ethvert C-program, hvor variabler lagrer foranderlige vรฆrdier, datatyper definerer stรธrrelsen og omrรฅdet for disse data, og konstanter holder faste vรฆrdier, der aldrig รฆndrer sig.

Hvad er en variabel?
En variabel er en identifikator, som bruges til at gemme en eller anden vรฆrdi. Konstanter kan aldrig รฆndre sig pรฅ tidspunktet for udfรธrelse. Variabler kan รฆndre sig under udfรธrelsen af โโet program og opdatere vรฆrdien gemt inde i det.
En enkelt variabel kan bruges flere steder i et program. Et variabelnavn skal vรฆre meningsfuldt. Det skal reprรฆsentere formรฅlet med variablen.
Example: Height, age, are the meaningful variables that represent the purpose it is being used for. Height variable can be used to store a height value. Age variable can be used to store the age of a person
En variabel skal fรธrst erklรฆres, fรธr den bruges et sted i programmet. Et variabelnavn dannes ved hjรฆlp af tegn, cifre og en understregning.
Fรธlgende er de regler, der skal fรธlges, nรฅr du opretter en variabel:
- Et variabelnavn bรธr kun bestรฅ af tegn, cifre og en understregning.
- Et variabelnavn bรธr ikke begynde med et tal.
- Et variabelnavn bรธr ikke bestรฅ af mellemrum.
- Et variabelnavn bรธr ikke bestรฅ af et nรธgleord.
- 'C' er et sprog, der skelner mellem store og smรฅ bogstaver, hvilket betyder, at en variabel kaldet 'alder' og 'AGE' er forskellige.
Fรธlgende er eksempler pรฅ gyldige variabelnavne i et 'C'-program:
height or HEIGHT
_height
_height1
My_name
Fรธlgende er eksempler pรฅ ugyldige variabelnavne i et 'C'-program:
1height Hei$ght My name
For eksempel deklarerer vi en heltalsvariabel my_variable og tildeler den vรฆrdien 48:
int my_variable;
my_variable = 48;
Forresten kan vi bรฅde deklarere og initialisere (tildele en startvรฆrdi) en variabel i en enkelt sรฆtning:
int my_variable = 48;
Datatyper
'C' giver forskellige datatyper for at gรธre det nemt for en programmรธr at vรฆlge en passende datatype i henhold til kravene til en applikation. Fรธlgende er de tre datatyper:
- Primitive datatyper
- Afledte datatyper
- Brugerdefinerede datatyper
Der er fem primรฆre grundlรฆggende datatyper,
- int for heltalsdata
- char for tegndata
- flydende for flydende kommatal
- dobbelt for dobbelt prรฆcision med flydende kommatal
- ugyldig
Arrays, funktioner, pointere og strukturer er afledte datatyper. 'C'-sproget tilbyder mere udvidede versioner af de ovennรฆvnte primรฆre datatyper. Hver datatype adskiller sig fra hinanden i stรธrrelse og omrรฅde. Fรธlgende tabel viser stรธrrelsen og omrรฅdet for hver datatype.
| Datatype | Stรธrrelse i bytes | Rรฆkkevidde |
| Char eller signeret char | 1 | -128 til 127 |
| Usigneret char | 1 | 0 til 255 |
| int eller underskrevet int | 2 | -32768 til 32767 |
| Usigneret int | 2 | 0 til 65535 |
| Kort int eller Usigneret kort int | 2 | 0 til 255 |
| Signeret kort int | 2 | -128 til 127 |
| Lang int eller Signeret lang int | 4 | -2147483648 til 2147483647 |
| Usigneret lang int | 4 | 0 til 4294967295 |
| flyde | 4 | 3.4E-38 til 3.4E+38 |
| fordoble | 8 | 1.7E-308 til 1.7E+308 |
| Lang dobbelt | 10 | 3.4E-4932 til 1.1E+4932 |
Bemรฆrk: I C findes der ingen boolsk datatype.
Heltalsdatatype
Heltal er intet andet end et helt tal. Omrรฅdet for en heltalsdatatype varierer fra maskine til maskine. Standardomrรฅdet for en heltalsdatatype er -32768 til 32767.
Et heltal er typisk pรฅ 2 bytes, hvilket betyder, at det i alt bruger 16 bits i hukommelsen. En enkelt heltalsvรฆrdi tager 2 bytes hukommelse. En heltalsdatatype er yderligere opdelt i andre datatyper sรฅsom kort int, int og lang int.
Hver datatype adskiller sig i rรฆkkevidde, selvom den tilhรธrer heltalsdatatypefamilien. Stรธrrelsen รฆndres muligvis ikke for hver datatype af heltalsfamilien.
Den korte int bruges for det meste til at gemme smรฅ tal, int bruges til at gemme heltalsvรฆrdier af gennemsnitlig stรธrrelse, og lang int bruges til at gemme store heltalsvรฆrdier.
Nรฅr vi vil bruge en heltalsdatatype, skal vi placere int foran identifikatoren, f.eks.
int age;
Her er alder en variabel af en heltalsdatatype, som kan bruges til at gemme heltalsvรฆrdier.
Flydende kommadatatype
Ligesom heltal kan vi i 'C'-programmet ogsรฅ gรธre brug af datatyper med flydende komma. Nรธgleordet 'float' bruges til at reprรฆsentere datatypen med flydende komma. Det kan indeholde en flydende decimalvรฆrdi, hvilket betyder, at et tal har en brรธkdel og en decimaldel. En flydende kommavรฆrdi er et reelt tal, der indeholder et decimalkomma. Heltalsdatatypen gemmer ikke decimaldelen, derfor kan vi bruge float til at gemme decimaldelen af โโen vรฆrdi.
Generelt kan en flyder holde op til 6 prรฆcisionsvรฆrdier. Hvis float ikke er tilstrรฆkkeligt, sรฅ kan vi gรธre brug af andre datatyper, der kan rumme store flydende kommavรฆrdier. Datatypen double og long double bruges til at gemme reelle tal med prรฆcision op til henholdsvis 14 og 80 bit.
Nรฅr du bruger et flydende kommanummer, skal et nรธgleord flydende/dobbelt/langt dobbelt placeres fรธr en identifikator. De gyldige eksempler er,
float division; double BankBalance;
Karakterdatatype
Tegndatatyper bruges til at gemme en enkelt tegnvรฆrdi omsluttet af enkelte anfรธrselstegn.
En tegndatatype optager op til 1 byte hukommelsesplads.
Eksempel,
Char letter;
Ugyldig datatype
En ugyldig datatype indeholder eller returnerer ingen vรฆrdi. Det bruges mest til at definere funktioner i 'C'.
Eksempel,
void displayData()
Typedeklaration af en variabel
int main() { int x, y; float salary = 13.48; char letter = 'K'; x = 25; y = 34; int z = x+y; printf("%d \n", z); printf("%f \n", salary); printf("%c \n", letter); return 0;}
Output:
59 13.480000 K
Vi kan deklarere flere variabler med samme datatype pรฅ en enkelt linje ved at adskille dem med et komma. Bemรฆrk ogsรฅ brugen af โโformatspecifikationer i printf outputfunktionerne float (%f) og char (%c) og int (%d).
Konstanter
Konstanter er de faste vรฆrdier, der aldrig รฆndres under udfรธrelsen af โโet program. Fรธlgende er de forskellige typer konstanter:
Heltalskonstanter
En heltalskonstant er intet andet end en vรฆrdi bestรฅende af cifre eller tal. Disse vรฆrdier รฆndres aldrig under afviklingen af โโet program. Heltalskonstanter kan vรฆre oktale, decimale og hexadecimale.
Decimalkonstanten indeholder cifre fra 0-9 som f.eks.
Example, 111, 1234
Ovenfor er de gyldige decimalkonstanter.
Oktal konstant indeholder cifre fra 0-7, og disse typer konstanter er altid 0 foran.
Example, 012, 065
Ovenfor er de gyldige oktale konstanter.
Hexadecimal konstant indeholder et ciffer fra 0-9 samt tegn fra AF. Hexadecimale konstanter indledes altid med 0X.
Example, 0X2, 0Xbcd
Ovenfor er de gyldige hexadecimale konstanter.
De oktale og hexadecimale heltalskonstanter bruges meget sjรฆldent i programmering med 'C'.
Karakterkonstanter
En tegnkonstant indeholder kun et enkelt tegn omsluttet af et enkelt anfรธrselstegn ('). Vi kan ogsรฅ reprรฆsentere tegnkonstanten ved at angive en ASCII-vรฆrdi.
Example, 'A', '9'
Ovenfor er eksempler pรฅ gyldige tegnkonstanter.
Strengkonstanter
En strengkonstant indeholder en sekvens af tegn omsluttet af dobbelte anfรธrselstegn ("").
Example, "Hello", "Programming"
Dette er eksemplerne pรฅ gyldige strengkonstanter.
Virkelige konstanter
Ligesom heltalskonstanter, der altid indeholder en heltalsvรฆrdi. 'C' giver ogsรฅ reelle konstanter, der indeholder et decimaltegn eller en brรธkvรฆrdi. De reelle konstanter kaldes ogsรฅ flydende kommakonstanter. Den reelle konstant indeholder et decimaltegn og en brรธkvรฆrdi.
Example, 202.15, 300.00
Disse er de gyldige reelle konstanter i 'Cยซ.
En reel konstant kan ogsรฅ skrives som,
Mantissa e Exponent
For for eksempel at erklรฆre en vรฆrdi, der ikke รฆndrer sig som den klassiske cirkelkonstant PI, er der to mรฅder at erklรฆre denne konstant pรฅ
Ved at bruge const-nรธgleordet i en variabeldeklaration, reserverer det en lagerhukommelse
#include <stdio.h> int main() { const double PI = 3.14; printf("%f", PI); //PI++; // This will generate an error as constants cannot be changed return 0;}
Ved at bruge #define pre-processor-direktivet, som ikke bruger hukommelse til lagring, og uden at indsรฆtte et semikolon i slutningen af โโโโdenne sรฆtning
#include <stdio.h> #define PI 3.14 int main() { printf("%f", PI); return 0;}
