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.

  • ๐Ÿ”ค Variabler: A variable is a named identifier whose value can change, declared using letters, digits, or an underscore.
  • ๐Ÿงฎ Datatyper: C types are primitive, derived, and user-defined, including int, char, float, double, and void, each with a fixed size and range.
  • ๐Ÿ”’ Konstanter: Constants hold fixed values and include integer, character, string, and real constants that never change.
  • ๐Ÿ‡ง๐Ÿ‡ท Erklรฆring: The const keyword and the #define directive both create constants, one reserving memory and the other substituting text.
  • ๐Ÿค– AI assistance: GitHub Copilot suggests correct data types, flags naming errors, and speeds up C declarations.

C Variabel, Datatyper, Konstanter

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;}

Ofte Stillede Spรธrgsmรฅl

A variable is a named memory location whose value can change during execution. A constant holds a fixed value that never changes once defined.

The const keyword makes a typed, memory-backed constant the compiler checks. #define is a preprocessor macro that substitutes text and uses no storage.

A local variable lives inside a function and exists only while it runs. A global variable stays accessible program-wide through C opbevaringsklasser.

A signed type stores negative and positive values. An unsigned type stores only non-negative values, doubling the positive range for the same number of bytes.

Classic C had no boolean type; programmers used int with 0 and 1. Since C99, <stdbool.h> adds bool, true, and false through the _Bool type.

Format specifiers tell printf and scanf how to interpret data. %d handles integers, %f handles floating-point numbers, and %c handles a single character.

Yes. AI coding assistants suggest data types, warn about values that overflow a range, and flag names that clash with keywords. Always review the output.

GitHub Copilot autocompletes variable and constant declarations from comments or nearby code. It suggests names and data types and drafts const or #define lines to review.

Opsummer dette indlรฆg med: