What are assignment operators in C?

C-Operatorer: En Dybdegående Guide

04/01/2000

Rating: 4.98 (12809 votes)

I programmeringsverdenen, og især i sproget C, er operatorer de grundlæggende symboler, der instruerer computeren til at udføre specifikke matematiske eller logiske handlinger. De er de værktøjer, vi bruger til at manipulere variabler og værdier, hvilket gør dem til en uundværlig del af enhver programmørs værktøjskasse. Uden en solid forståelse af operatorer ville det være umuligt at skrive meningsfuld og funktionel kode. Denne artikel vil guide dig gennem de forskellige typer af operatorer, der findes i C, forklare deres funktioner med klare eksempler og vise, hvordan de bruges til at bygge komplekse udtryk.

What is a + operator in C?
Although the + operator is often used to add together two values, like in the example above, it can also be used to add together a variable and a value, or a variable and another variable: C divides the operators into the following groups: Arithmetic operators are used to perform common mathematical operations.
Indholdsfortegnelse

Hvad er en Operator i C?

En operator er et symbol, der fortæller compileren, at den skal udføre en bestemt matematisk, relationel eller logisk operation og producere et resultat. De operander, som en operator handler på, er de variabler eller værdier, der er involveret i operationen. For eksempel, i udtrykket 100 + 50, er + operatoren, og 100 og 50 er operanderne. C-sproget understøtter en bred vifte af operatorer, som kan klassificeres i flere hovedgrupper, hvilket giver programmører stor fleksibilitet og kontrol.

Kategorier af C-Operatorer

For at gøre det lettere at forstå og anvende dem, opdeles C's operatorer typisk i følgende grupper:

  • Aritmetiske Operatorer: Bruges til at udføre almindelige matematiske beregninger.
  • Tildelingsoperatorer: Bruges til at tildele værdier til variabler.
  • Sammenligningsoperatorer: Bruges til at sammenligne to værdier.
  • Logiske Operatorer: Bruges til at bestemme logikken mellem variabler eller værdier.
  • Bitwise Operatorer: Bruges til at manipulere data på bit-niveau.
  • Increment- og Decrement-operatorer: Bruges til at øge eller mindske en værdi med én.
  • Betingede Operatorer: En ternær operator, der fungerer som en kompakt if-else-erklæring.
  • Specielle Operatorer: Inkluderer operatorer som sizeof og komma-operatoren.

Aritmetiske Operatorer

Disse er de mest grundlæggende operatorer og bruges til matematiske operationer. De fungerer på alle indbyggede datatyper i C, såsom int, float og double.

OperatorNavnBeskrivelseEksempel
+AdditionLægger to operander sammenint sum = 10 + 5; // sum er 15
-SubtraktionTrækker den anden operand fra den førsteint diff = 10 - 5; // diff er 5
*MultiplikationGanger to operanderint prod = 10 * 5; // prod er 50
/DivisionDeler den første operand med den anden. Resultatet er et heltal, hvis begge operander er heltal.int div = 10 / 4; // div er 2
%ModuloReturnerer resten af en heltalsdivision. Kan ikke bruges på float eller double.int rem = 10 % 4; // rem er 2

Tildelingsoperatorer

Tildelingsoperatorer bruges til at tildele en værdi til en variabel. Den mest almindelige er lighedstegnet (=). C tilbyder dog også "shorthand" tildelingsoperatorer, der kombinerer en aritmetisk operation med tildeling, hvilket gør koden mere kompakt.

For eksempel er x += 5; en kortere måde at skrive x = x + 5; på.

What are C operators used for?
Operators can be used to perform operation directly on some value (C Literals) or on C variables. In the C language we can perform arithmetic operations, logical and relational operations, bitwise operations, etc. using the C operators on data. Q2. What are the different types of operators C supports?
Shorthand OperatorÆkvivalent Udtryk
a += b;a = a + b;
a -= b;a = a - b;
a *= b;a = a * b;
a /= b;a = a / b;
a %= b;a = a % b;

Sammenligningsoperatorer

Disse operatorer bruges til at sammenligne to værdier eller variabler. Resultatet af en sammenligning er altid en boolesk værdi: 1 (sandt) eller 0 (falsk). De er afgørende for at træffe beslutninger i kode, typisk inden i kontrolstrukturer som if-sætninger og løkker.

OperatorNavnEksempelResultat
==Er lig med5 == 51 (sandt)
!=Er ikke lig med5 != 50 (falsk)
>Større end5 > 31 (sandt)
<Mindre end5 < 30 (falsk)
>=Større end eller lig med5 >= 51 (sandt)
<=Mindre end eller lig med5 <= 30 (falsk)

Logiske Operatorer

Logiske operatorer bruges til at kombinere flere betingede udtryk. De er essentielle for at skabe mere komplekse beslutningsstrukturer.

  • &&(Logisk OG): Returnerer sandt (1), hvis begge operander er sande.
  • ||(Logisk ELLER): Returnerer sandt (1), hvis mindst én af operanderne er sand.
  • !(Logisk IKKE): Inverterer operandens logiske tilstand. Hvis en betingelse er sand, gør ! den falsk, og omvendt.

Eksempel: For at tjekke om en persons alder er mellem 18 og 65, kan man skrive: if (alder >= 18 && alder <= 65).

Increment- og Decrement-operatorer

C har to unikke unære operatorer, ++ (increment) og -- (decrement), som henholdsvis lægger 1 til eller trækker 1 fra en variabel. De kan bruges på to måder: prefix og postfix, og forskellen er vigtig.

What is op in C?
op = a binary arithmetic operator. The Operator op= is known as the shorthand assignment operator. C supports two unique operators that are not found in other languages. They are: ++ and -- (increment and decrement operators respectively). The operator ++ adds 1 to the operand, while – subtracts 1.
  • Prefix (++var): Værdien af variablen øges først, og derefter bruges den nye værdi i udtrykket.
  • Postfix (var++): Den nuværende værdi af variablen bruges først i udtrykket, og derefter øges værdien.

Overvej følgende eksempel:

int x = 10;
int y = ++x; // Prefix: x bliver 11, y bliver 11.

int a = 10;
int b = a++; // Postfix: b bliver 10, a bliver 11.

Den samme logik gælder for decrement-operatoren (--).

Operatorpræcedens

Når et udtryk indeholder flere operatorer, bestemmer præcedens (eller prioritet) rækkefølgen, de evalueres i. For eksempel har multiplikation (*) og division (/) højere præcedens end addition (+) og subtraktion (-). Dette svarer til regnereglerne fra matematik.

I udtrykket x = 9 - 12 / 3 + 3 * 2 - 1, vil evalueringen foregå således:

  1. Division: 12 / 3 bliver til 4. Udtrykket er nu: 9 - 4 + 3 * 2 - 1.
  2. Multiplikation: 3 * 2 bliver til 6. Udtrykket er nu: 9 - 4 + 6 - 1.
  3. Subtraktion (fra venstre): 9 - 4 bliver til 5. Udtrykket er nu: 5 + 6 - 1.
  4. Addition: 5 + 6 bliver til 11. Udtrykket er nu: 11 - 1.
  5. Subtraktion: 11 - 1 bliver til 10. Resultatet er 10.

Hvis du vil ændre evalueringsrækkefølgen, kan du bruge parenteser(). Udtryk inde i parenteser evalueres altid først.

Ofte Stillede Spørgsmål (FAQ)

Hvad er forskellen på `=` og `==` i C?

Dette er en meget almindelig fejl for begyndere. = er tildelingsoperatoren, som bruges til at give en variabel en værdi (f.eks. x = 10;). == er sammenligningsoperatoren, som bruges til at tjekke, om to værdier er ens (f.eks. if (x == 10)).

Why is a bool error on Line 21?
And also the error appeared at line 21. That might be helpful if you actually posted your code. But based on the error message, you have a number (or an expression that evaluates to a number) that you were trying to use as if it were a true/false value (that is, a “bool”). Some part of your if statement isn’t saying what you meant.

Kan jeg bruge `%` (modulo) operatoren på flydende tal (float/double)?

Nej, modulo-operatoren i C er kun defineret for heltal (int, char, long etc.). At forsøge at bruge den på float eller double vil resultere i en kompileringsfejl.

Hvad er den største fordel ved at bruge shorthand-tildelingsoperatorer som `+=`?

Den primære fordel er, at det gør koden mere kortfattet og ofte lettere at læse. I stedet for at skrive totalAntal = totalAntal + nytAntal;, kan du blot skrive totalAntal += nytAntal;. Det reducerer redundans og kan gøre hensigten med koden klarere.

Hvornår skal jeg bruge prefix (`++x`) frem for postfix (`x++`)?

Hvis increment-operationen står alene som en erklæring (x++; eller ++x;), er der ingen funktionel forskel. Forskellen opstår, når operatoren bruges som en del af et større udtryk. Brug prefix, hvis du har brug for den opdaterede værdi med det samme i udtrykket. Brug postfix, hvis du har brug for den oprindelige værdi i udtrykket, før den opdateres.

Hvis du vil læse andre artikler, der ligner C-Operatorer: En Dybdegående Guide, kan du besøge kategorien Teknologi.

Go up