What are assignment operators in C?

En Komplet Guide til Operatorer i C

13/08/2022

Rating: 4.57 (14072 votes)

C understøtter et bredt udvalg af indbyggede operatorer. En operator er et symbol, der repræsenterer en handling eller en række handlinger på en variabel eller et sæt variabler. I C-sproget bruges disse symboler til at udføre specifikke matematiske og logiske operationer på operander. Operatorer er de grundlæggende byggesten i computerprogrammering, der instruerer compileren i at udføre bestemte handlinger.

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.

I C er en operator et tegn, der kan anvendes til matematiske, relationelle, bitwise, betingede eller logiske manipulationer. C-programmeringssproget har mange indbyggede operatorer, som kan bruges til at udføre forskellige opgaver, alt efter programmets behov. Operatorer bruges typisk i programmer til at manipulere data og variabler og er inkluderet i matematiske, logiske eller betingede udsagn.

Lad os se på et simpelt eksempel:

int a = 100 + 50;

I eksemplet ovenfor bruges '+' operatoren, kendt som additionsoperatoren, til at lægge to operander sammen. Her lægges to heltal sammen, og vi får en sum på 150.

Indholdsfortegnelse

Typer af Operatorer i C

I C-sproget findes der forskellige operatorer, som hjælper en programmør med at udføre forskellige typer operationer. Ved hjælp af disse operatorer kan vi håndtere en række forskellige operationer i et program. De primære kategorier er:

  • Aritmetiske Operatorer
  • Relationelle Operatorer
  • Logiske Operatorer
  • Bitwise Operatorer
  • Tildelingsoperatorer
  • Betingede Operatorer (Ternær Operator)
  • Diverse Operatorer

Aritmetiske Operatorer i C

De aritmetiske operatorer i C-sproget hjælper en bruger med at udføre matematiske såvel som aritmetiske procedurer i et program. Disse inkluderer subtraktion (-), addition (+), division (/), multiplikation (*), rest ved division (%), dekrement (--) og inkrement (++).

Aritmetiske operatorer kan klassificeres i to typer:

  • Binære Operatorer: Denne type operator arbejder med to operander, såsom +, -, *, /.
  • Unære Operatorer: Denne type operator, som ++ og --, arbejder med en enkelt værdi (operand).

Tabellen nedenfor viser alle de aritmetiske operatorer, der er tilgængelige i C-sproget, samt deres individuelle funktioner.

OperatorNavnBeskrivelse
+AdditionLægger to operander sammen.
-SubtraktionTrækker den anden operand fra den første.
*MultiplikationGanger begge operander.
/DivisionDividerer tælleren med nævneren.
%ModulusGiver resten af en heltalsdivision.
++InkrementØger heltalsværdien med 1.
--DekrementMindsker heltalsværdien med 1.

Prefix og Postfix Inkrement/Dekrement

Der er to slags dekrement- og inkrementoperatorer:

  • Prefix: En prefix-operator bruges, når vi anvender operatoren før den tilgængelige variabel i et program. I en prefix-inkrement-operator lægger programmet først 1 til og tildeler derefter den resulterende værdi til variablen. Med en prefix-dekrement-operator trækker programmet først 1 fra og tildeler derefter den resulterende værdi. For eksempel: ++x og --x.
  • Postfix: En postfix-operator bruges, når vi anvender operatoren efter den tilgængelige variabel. I en postfix-inkrement-operator tildeler programmet først værdien til variablen, lægger derefter 1 til og allokerer til sidst den resulterende værdi. Med en postfix-dekrement-operator tildeler programmet først variablens værdi, trækker derefter 1 fra og tildeler til sidst den resulterende værdi. For eksempel: x++ og x--.

Program for Aritmetiske Operatorer

#include <stdio.h> int main() { int a = 25, b = 4, c; c = a + b; printf("a+b = %d\n", c); c = a - b; printf("a-b = %d\n", c); c = a * b; printf("a*b = %d\n", c); c = a / b; printf("a/b = %d\n", c); c = a % b; printf("Rest ved a divideret med b = %d\n", c); printf("++a = %d\n", ++a); // a er nu 26 printf("--b = %d\n", --b); // b er nu 3 printf("a++ = %d\n", a++); // Udskriver 26, derefter bliver a 27 printf("b-- = %d\n", b--); // Udskriver 3, derefter bliver b 2 return 0; }

Output:

a+b = 29 a-b = 21 a*b = 100 a/b = 6 Rest ved a divideret med b = 1 ++a = 26 --b = 3 a++ = 26 b-- = 3

Operatorerne +, - og * beregner henholdsvis addition, subtraktion og multiplikation. I almindelig matematik er 25/4 lig med 6.25. I ovenstående program er resultatet dog 6. Dette skyldes, at både variablerne a og b er heltal. Derfor skal outputtet også være et heltal, og compileren ignorerer decimalerne. Modulus-operatoren (%) kan kun bruges med heltal.

Relationelle Operatorer i C

Relationelle operatorer hjælper med at danne en forbindelse eller sammenligning mellem to operander. Resultatet af en relationel operation er enten sandt (1) eller falsk (0). Disse operatorer er afgørende for at træffe beslutninger i et program. De inkluderer (==, !=, <, >, <=, >=).

Nedenstående tabel viser alle de relationelle operatorer, som C understøtter. Her antager vi, at variablerne er a = 5, b = 9.

OperatorNavnBeskrivelseEksempel (a=5, b=9)
==Lig medTjekker, om to operander er ens.a == b returnerer 0 (falsk)
!=Ikke lig medTjekker, om to operander ikke er ens.a != b returnerer 1 (sand)
>Større endTjekker, om venstre operand er større end højre.a > b returnerer 0 (falsk)
<Mindre endTjekker, om venstre operand er mindre end højre.a < b returnerer 1 (sand)
>=Større end eller lig medTjekker, om venstre operand er større end eller lig med højre.a >= b returnerer 0 (falsk)
<=Mindre end eller lig medTjekker, om venstre operand er mindre end eller lig med højre.a <= b returnerer 1 (sand)

Logiske Operatorer i C

Når vi skal evaluere mere end én betingelse for at træffe en beslutning, bruger vi logiske operatorer. Et udtryk, der indeholder en logisk operator, returnerer enten 0 (falsk) eller 1 (sand). De tre logiske operatorer er AND (&&), OR (||) og NOT (!).

Nedenstående tabel viser de logiske operatorer. Vi antager, at variablerne a = 1 og b = 0 (hvor 1 er sand og 0 er falsk).

OperatorNavnBeskrivelseEksempel
&&Logisk ANDReturnerer sand (1), hvis begge operander er sande.a && b returnerer 0 (falsk)
||Logisk ORReturnerer sand (1), hvis mindst én af operanderne er sand.a || b returnerer 1 (sand)
!Logisk NOTReturnerer sand (1), hvis betingelsen er falsk, og omvendt.!a returnerer 0 (falsk)

Bitwise Operatorer i C

I C bruger vi bitwise operatorer til at udføre operationer på bit-niveau på forskellige operander. Operatørerne konverterer først operanderne til bit-niveau og udfører derefter forskellige beregninger. Disse er yderst effektive til lavniveaus programmering.

Sandhedstabellen for &, | og ^ er som følger:

aba & ba | ba ^ b
11110
00000
01011
10011

Disse operatorer inkluderer AND (&), OR (|), XOR (^), NOT (~), venstre skift (<<) og højre skift (>>).

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.

Tildelingsoperatorer i C

En tildelingsoperator i et program har primært til formål at tildele en værdi til en variabel. Den mest almindelige tildelingsoperator er '='. C-sproget indeholder også et sæt af forkortede tildelingsoperatorer, der kombinerer en aritmetisk operation med en tildeling.

OperatorEksempelSvarer til
=a = ba = b
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b

Betinget Operator (Ternær Operator) i C

Den betingede operator, også kendt som den ternære operator, bruges til at træffe beslutninger i en enkelt linje. Den tager tre operander. Syntaksen er:

Betingelse ? Udtryk1: Udtryk2

Operatoren "?:" fungerer således: Først evalueres Betingelse. Hvis den er sand (ikke-nul), evalueres Udtryk1, og dens værdi bliver resultatet. Hvis Betingelse er falsk (nul), evalueres Udtryk2, og dens værdi bliver resultatet.

Diverse Operatorer i C

Ud over de ovennævnte operatorer implementerer C-sproget et par andre vigtige operatorer, som inkluderer sizeof(), adresseoperatoren &, pointeroperatoren * og andre.

OperatorNavnBeskrivelse
sizeof()StørrelsesoperatorReturnerer størrelsen af en variabel i bytes.
&AdresseoperatorBruges til at få adressen på en variabel.
*PointeroperatorBruges som en pointer til en variabel.
?:Betinget OperatorReturnerer en værdi baseret på en betingelse.

Operatorpræcedens i C

Operatorpræcedens er en anden funktion i C, der bestemmer, hvordan termer i et udtryk grupperes, og hvordan et udtryk evalueres. Nogle operatorer har højere præcedens end andre. For eksempel har multiplikationsoperatoren forrang for additionsoperatoren. Hvis du skriver 3 + 4 * 2, vil multiplikationen blive udført først, hvilket resulterer i 3 + 8 = 11.

Nedenfor er en tabel, der viser præcedens og associativitet for C-operatorer, fra højest til lavest.

KategoriOperatorAssociativitet
Postfix() [] -> . ++ --Venstre til højre
Unær+ - ! ~ ++ -- (type)* & sizeofHøjre til venstre
Multiplikativ* / %Venstre til højre
Additiv+ -Venstre til højre
Skift<< >>Venstre til højre
Relationel< <= > >=Venstre til højre
Ligestilling== !=Venstre til højre
Bitwise AND&Venstre til højre
Bitwise XOR^Venstre til højre
Bitwise OR|Venstre til højre
Logisk AND&&Venstre til højre
Logisk OR||Venstre til højre
Betinget?:Højre til venstre
Tildeling= += -= *= /= %= >>= <<= &= ^= |=Højre til venstre
Komma,Venstre til højre

Ofte Stillede Spørgsmål (FAQ)

Hvad er forskellen mellem '=' og '==' i C?

Dette er en almindelig fejl for begyndere. '=' er tildelingsoperatoren, som bruges til at tildele en værdi til en variabel (f.eks. x = 5;). '==' er ligestillingsoperatoren, som bruges til at sammenligne to værdier for at se, om de er ens (f.eks. if (x == 5)).

Hvad betyder operatorpræcedens?

Operatorpræcedens definerer rækkefølgen, som operatorer evalueres i et udtryk. Operatorer med højere præcedens udføres før dem med lavere præcedens. For eksempel har multiplikation højere præcedens end addition.

Kan modulus-operatoren (%) bruges med flydende kommatal?

Nej, i C er modulus-operatoren (%) kun defineret for heltal (int, char, long osv.). Hvis du forsøger at bruge den med flydende kommatal (float, double), vil det resultere i en kompileringsfejl.

Hvorfor returnerer logiske operatorer 0 eller 1?

I C repræsenteres 'falsk' af værdien 0, og 'sand' repræsenteres af enhver værdi, der ikke er nul. Logiske operatorer (&&, ||, !) evaluerer betingelser og returnerer 1 for at angive 'sand' og 0 for at angive 'falsk'. Dette standardiserede output gør det nemt at bruge dem i kontrolstrukturer som if og while.

Konklusion

I denne artikel har vi udforsket de forskellige typer operatorer i C-programmeringssproget. Vi har lært, at operatorer er symboler, der bruges til at udføre forskellige operationer, hvad enten de er matematiske, logiske, relationelle eller bit-niveau. Forståelse af disse operatorer og deres præcedens er afgørende for at skrive effektiv og korrekt C-kode. Ved at mestre brugen af operatorer kan du manipulere data præcist og bygge komplekse og kraftfulde programmer.

Hvis du vil læse andre artikler, der ligner En Komplet Guide til Operatorer i C, kan du besøge kategorien Sundhed.

Go up