C Variabel, Datatyper, Konstanter
โก Smart opsummering
Variables, data types, and constants form the foundation of every C program, where variables store changeable values, data types define the size and range of that data, and constants hold fixed values that never change.

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 example, we declare an integer variable my_variable and assign it the value 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
Array, functions, pointers, structures are derived data types. โCโ language provides more extended versions of the above mentioned primary data types. Each data type differs from one another in size and range. Following table displays the size and range of each data type.
| 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 |
Note: In C, there is no Boolean data type.
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.
Whenever we want to use an integer data type, we have to place int before the identifier such as,
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.
A character data type takes up to 1 byte of memory space.
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
We can declare multiple variables with the same data type on a single line by separating them with a comma. Also, notice the use of format specifiers in printf output function float (%f) and char (%c) and 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
A character constant contains only a single character enclosed within a single quote (โ). We can also represent character constant by providing ASCII value of it.
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รฅ
By using the const keyword in a variable declaration which will reserve a storage memory
#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;}
By using the #define pre-processor directive which doesnโt use memory for storage and without putting a semicolon character at the end of that statement
#include <stdio.h> #define PI 3.14 int main() { printf("%f", PI); return 0;}
