Hallo. Welkom terug. In
deze lezing gaan we enkele van de basisoperatoren bespreken die
worden ondersteund door de programmeertaal c.
Dus operators weer gewoon speciale symbolen voor functies die je
aan het uitvoeren bent.
Dus we gaan in deze lezing in principe 4
verschillende soorten operatoren bespreken.
De rekenkundige,
logische, toewijzings- en relationele operatoren.
En dan gaan we in een andere lezing de bitsgewijze operatoren
bespreken en dan een paar andere speciale operatoren die er niet echt uitzien alsof
ze een operator zijn, maar ze zijn, de grootte van de operator en de casting-operator.
Dus een rekenkundige operator is waarschijnlijk de meest voor de hand liggende,
degene waarmee u waarschijnlijk het meest vertrouwd bent. Het is een wiskundige functie,
neemt 2 operanden en voert daarop berekeningen uit.
Het is infix dus de operators en tussen de operanden.
Een logische operator, ook wel een Booleaanse operator genoemd, is een
operator die een Booleaans resultaat retourneert. Waar of onwaar, dat is wat een Boolean is.
Het is dus eigenlijk gewoon een voorwaardelijke operator.
Het is gebaseerd op het Booleaanse resultaat van een of meer 2 andere
uitdrukkingen, een of twee andere uitdrukkingen.
Een toewijzingsoperator stelt variabelen gewoon in op waarden.
Het wijst de waarde van de uitdrukking aan de rechterkant toe aan de variabele aan de linkerkant.
Het is dus een rechter operand en een linker operand.
Nogmaals, het is infix.
En dan zal een relationele operator variabelen met elkaar vergelijken.
Dit is dus een soort vergelijkbare typevolgorde, kleiner dan en groter dan.
Maar laten we ze allemaal eens bekijken, want er zijn
veel, veel, veel verschillende operators. C ondersteunt een superrijke set.
Dus de eersten zijn deze rekenkundige operatoren in c.
Dit zijn de wiskundige functies. Er is dus
een kleine tabel die ik online vond
op de website van tutorials points, wat leuk is.
En dit vat alle rekenkundige operatoren in c samen die worden ondersteund.
Dus de basis, net als in wiskunde. Er is hier niets echt nieuws.
Aan de linkerkant van de tabel staat de operator, in
het midden staat een beschrijving van wat hij doet en aan de rechterkant een voorbeeld.
Dus het plusteken dat aan operanden
wordt toegevoegd. Het is infix. Het zit tussen de 2 operanden in.
Dus wat u zou doen, is dat u
variabelen kunt toevoegen, een combinatie van constanten in een variabele of alleen constanten.
En deze zeggen we dat a plus b gelijk is aan 30.
Maar de eigenlijke operator en operanden zijn slechts een pluspunt b.
En dan zou dat het voorbeeld zijn.
Min trekt 2 operanden af, a min b.
Dus een min b zou eigenlijk gelijk kunnen zijn aan zoiets als een min 10 als a
gelijk is aan 20 en b gelijk is aan 10 of b gelijk is
aan een min 10.
Asterisk is voor vermenigvuldiging.
Opnieuw infix tussen
operanden.
Deling is de schuine streep.
Percentage is modulus-operator. Dit is de rest-operator.
Dus als je zou zeggen als een variabel percentage a,
wat zal dat dan zijn. Als b gelijk was aan 20, a
was gelijk aan
12, zou de modulus-operator 8 retourneren, want dat is de rest van 20 gedeeld door 12.
Plus plus en min minus, dit zijn specifieke operatoren voor verhoging en verlaging.
Ze worden nog steeds rekenkundige operatoren genoemd, maar je ziet
ze meestal alleen in lussen als je code
herhaalt, maar niet altijd. Ik bedoel in dit voorbeeld
hier, in feite verhoogt u een variabele met 1
of met een specifieke waarde als u
iets anders doet. Maar als je een plus plus doet,
wat a ook was, als het 5 was, zal het niet gelijk zijn aan 6.
En dan is er nog een
decrement-operator, die de integerwaarde met 1 verlaagt, dus een min minus.
En de plus plus en de min min die je zou moeten opmerken, staan na de variabele.
Dit wordt postfix genoemd.
En wat dit betekent is dat als die variabele
in een expressie zit, deze pas na die instructie wordt toegewezen.
Als het een voorvoegsel
is, wordt het eerder toegewezen. Laten we dus enkele voorbeelden van
deze rekenkundige bedieningscodeblokken doornemen, zodat ze een beetje logischer zijn.
Dus hier zijn codeblokken, hier is onze hoofdroutine.
We zijn hier inmiddels bekend mee. Ik ga gewoon een paar variabelen
maken en er wat bewerkingen op uitvoeren en ze vervolgens afdrukken.
En ik ga gewoon gehele getallen maken. En het maakt niet uit of je floats kunt maken
om berekeningen of verdubbelingen uit te voeren, maar we maken het gewoon basic.
We zeggen dat a gelijk is aan 33.
Maak nog een variabele van het type integer, en we gaan
die toewijzen aan 15. Dus we doen een aangifte en een toewijzing in één enkele instructie.
En dan hebben we gewoon een resultaatvariabele.
En dit wordt geïnitialiseerd op 0, dus hier kunnen
we beginnen met het uitvoeren van berekeningen. We kunnen c zeggen,
en we kunnen opdrachten doen. We hebben niet specifiek formeel over opdrachten geleerd,
maar we weten wat opdrachten zijn. Opdrachten nemen gegevens en plaatsen die
gegevens in die variabele. Dus c is gelijk aan
het nemen van wat zich aan de rechterkant bevindt en het resultaat in die variabele plaatsen.
Dus als we a plus b zeggen, ziet dit
er weer uit als een normale wiskundige routine,
en dat is het ook. Het zou gewoon 33 plus 15 zijn, en wat zou
de waarde zijn van c, 48. En zo kon je de waarden gewoon uitprinten.
Je zou gewoon kunnen zeggen dat c procent d is met behulp van
onze formaatspecificatie en gewoon c uitprinten.
En dan kunnen we misschien een line feed doen.
En dat zou gewoon 2 getallen optellen. Het is zo basaal. Het is zo simpel.
We laten het gewoon zien. Dus als we dit programma
uitvoeren, zien we de toevoeging van 33 plus 15.
We compileren dit opnieuw, slaan het op, bijvoorbeeld build, en slaan
vervolgens run op.
Je zult zien dat als ik het na mijn virusscanner uitvoer, er staat dat c 48 is.
Hier kun je dus lekker mee spelen. Ik bedoel, dit is dat deze basic zijn. Dus een plus
b, je kunt de min doen, je kunt de asterisk doen voor vermenigvuldiging, en
dan kun je de deling doen voor
de schuine streep en dan het procentsymbool dat de modulus is.
Dus dit is interessant omdat je weet dat 33 gedeeld door 15 2 zou zijn met een rest van
3, dus het resultaat wordt in dit geval 3, laten we er echter zeker van zijn.
Bewaar dit, en zorg ervoor dat we onze executie sluiten.
En als we het uitvoeren, kunnen we zien dat
c gelijk
is aan 3, want dat is de rest.
Anders is het vrij basic. De belangrijkste met de plus plus
zijn om het voorvoegsel en het achtervoegsel te begrijpen.
Dus als ik zou zeggen en dit is relevanter als je het in een enkele verklaring doet, printf.
Dus laten we zeggen dat ik een plus
plus uitprint, wat dat gaat afdrukken is 34 omdat je a
met 1 gaat verhogen en
het dan uitprint. Maar je gaat het in de enkele verklaring doen,
je gaat het in dezelfde regel doen omdat het achteraf is.
Dus wat hier wordt weergegeven, is dat
er maar 33 wordt weergegeven.
Het zal a niet echt verhogen tot de volgende regel code.
Dus als we dit uitvoeren,
ziet u dat het alleen 33 wordt afgedrukt.
Dat is het verschil tussen een plus plus een doen.
Als je een plus plus a doet, wat hetzelfde is dat je met
één gaat verhogen, is het verschil hier echter dat je het met 1 gaat verhogen
en dan voordat de instructie wordt uitgevoerd. Dus hier zullen we
nu opmerken
dat we slechts een paar
waarschuwingen hebben, geen fouten. En wanneer we het uitvoeren, ziet u nu dat het antwoord 34 is,
omdat het in feite wordt verhoogd voordat de instructie wordt uitgevoerd. En dat is belangrijk
om te weten tussen plus plus variabelenaam versus variabelenaam plus plus.
Dat heet gewoon prefix en postfix.
Hetzelfde zou gebeuren voor de min minus.
Houd die dus in gedachten voor je
unaire.
Dit zijn ook unaire operatoren omdat ze maar één operand hebben.
De andere zijn binaire operatoren omdat ze een operator
tussen de operanden hebben.
Maar begrijp de min minus versus de plus plus.
En begrijp dan ook of je het voor de variabele na de variabele plaatst
wanneer het daadwerkelijk gaat verhogen of verlagen.
En nogmaals, als het achter de
variabele staat, wordt het daar verhoogd of verlaagd
voordat het de coderegel uitvoert. Als het um vóór de variabele
is, gaat het de coderegel uitvoeren en daarna wordt de instructie uitgevoerd, dan
wordt het verhoogd of verlaagd.
Maar speel hiermee, open een raam, doe
een heleboel verschillende rekenkundige uitdrukkingen en kijk hoe het allemaal werkt.
Laten we het nu hebben over enkele van de andere typen operators.
De volgende groep operators worden logische operators genoemd.
En we hebben gedefinieerd wat dit betekent dat het
in feite voorwaardelijke type-operators zijn. Ze retourneren Booleaanse resultaten, waar
of onwaar.
Dus de symbolen die logische operatoren vertegenwoordigen zijn de ampersand ampersand.
De 2 parallelle staven en het uitroepteken.
Het ampersand ampersand wordt de logische en operator genoemd.
Het is ook een infix-operator die 2 operanden nodig heeft, één aan de
linkerkant, één aan de zijkant. Kortom, als elke
operand niet-0 is, wordt de voorwaarde waar.
En dus niet-0 betekent 1, wat waar betekent. Dus als a waar is en
b waar, dan is het antwoord
waar.
Als a onwaar is en b waar,
dan is het antwoord onwaar. Als a onwaar is en b onwaar, dan is
het antwoord onwaar. Dus nogmaals, we zullen daar enkele voorbeelden van doen.
En dan zijn parallelle staven de logische of operator. Nogmaals, dit zou vergelijkbaar moeten zijn met je wiskundeles, dus
ik wil er niet te veel tijd aan besteden. Maar als een van de 2
operanden niet-0
is, is een van beide waar, dan is het waar. Dus als a waar is en b onwaar, dan is het waar.
En dit zijn expressies die waarden retourneren.
Dus de terugkeer zou zijn als a waar is en b onwaar, de terugkeer zal waar zijn.
En dan de logische niet-operator die het uitroepteken is, dit keert gewoon
de logische status van zijn operand om.
Dus als de voorwaarde waar is, wordt deze onwaar geretourneerd.
Dus als je geen a zegt, is het uitroepteken en a was waar a onwaar.
Als je het niet buiten haakjes plaatst, zal wat a en b geëvalueerd worden
nu naar het tegenovergestelde waarde gaan.
Laten we dus nog eens kijken naar enkele voorbeelden en codeblokken.
Hier zijn koude blokken. En nogmaals, ik ga een paar variabelen maken om logische operatoren te demonstreren.
Nogmaals, ik zal gewoon enkele gehele getallen maken, we
zeggen dat a gelijk is aan 12 en dan is b gelijk aan 20.
En wat beter zou zijn, is dat we
een a maken omdat ik geen voorwaarden wil gebruiken, dus we zullen
gewoon een onderstrepingsteken maken, en we zullen dat toewijzen, ik zal zeggen
dat dit resultaten zullen zijn, en
we zullen in
eerste instantie wijs dat nergens aan toe.
En dan gaan we wat gegevens uitprinten.
We willen dus zien wat de waarden zijn
van deze expressies die worden geretourneerd als we de logische operatoren gebruiken.
Dus hier ga ik procent d
uitprinten, wat een geheel getal is. Want onthoud, Booleaanse uitdrukkingen zijn gewoon
gehele getallen.
Booleaanse variabelen zijn gehele getallen. Dus als de Booleaanse waarde 1 is, betekent
dat dat het waar is.
Als het 0 is, is het onwaar. Al het andere is meestal 1, het is waar.
Dus ik ga het resultaat gewoon uitprinten.
En dan ga ik er wat gegevens aan toewijzen. Dus als ik zeg dat
resultaten gelijk zijn aan a en b,
dan slaat dat nergens op omdat dit getallen zijn.
Dus laten we een gelijk aan true
initialiseren en opnieuw Booleans gebruiken.
En hier zullen we zeggen
dat dit waar is en dit is waar.
En wanneer we de ampersands
gebruiken, zegt dit dat a en b beide waar moeten zijn om de terugkeer waar te maken.
De resultaten moeten dus 1 afdrukken omdat
1 waar is. Dus laten we
dit bouwen
en ervoor zorgen dat we
de juiste naamruimte gebruiken. Dus we gaan gewoon 1 vertegenwoordigen voor
waar en 1 omdat we de
juiste opname nu niet doen, dus dat is niet erg. Dus nu rennen we, het zou waar moeten
rapporteren, 1 en het doet 1.
Als ik nu een van deze verander in niet niet waar, als ik 0 zeg,
dan zal het resultaat onwaar zijn omdat a
en b beide waar moeten zijn om het resultaat waar te laten zijn.
Dus als ik dit bouw en het uitvoer, zul
je zien dat het resultaat 0 is omdat het
onwaar is.
Dus ofwel één als ik a of b verander in
0, wat onwaar betekent, zou het resultaat onwaar zijn omdat zowel a als b waar moeten zijn.
Als ik nu een evenwijdige balk zeg, wat of
a of b is, hoeft er maar één waar te zijn om de resultaten waar te maken.
Dus in dit geval moeten de resultaten 1 zijn.
Dus laten we dit bouwen en uitvoeren.
En nu hebben we een waarde van 1.
Er hoeft er dus maar één waar te zijn. Dus als ik ze nu
allebei onwaar maak en
dit zal veel meer van toepassing zijn als we het hebben over if-verklaringen
en conditionals en het nemen van beslissingen, maar ik demonstreer hier Booleaanse logica.
Nu zijn beide onwaar. Dus dit zou
0 moeten retourneren, wat onwaar is en
dat doet het ook, 0, dus behoorlijk netjes. En dan is de laatste gewoon het niet-symbool, wat het
uitroepteken is dat net het omgekeerde doet.
Dus als ik zeg niet a, als
a gelijk is aan 0, zal a nu gelijk
zijn aan 1 of resultaat zal zijn en resultaat zal gelijk zijn
aan 1, wat het is.
Dat zijn dus de 3 logische operatoren. Nogmaals, ze zullen worden gebruikt in meestal beslissingsverklaringen.
Laten we nu verder gaan en praten over een andere reeks operators.
Nu zijn hier de toewijzingsoperators. We zijn redelijk bekend met in ieder geval de
eenvoudige toewijzingsoperator, het gelijk-symbool. Het gelijk-symbool wijst gegevens toe, en
dat is vrij eenvoudig. C is gelijk aan a plus b, c wordt het resultaat van a plus b.
Nu zijn er dit samengestelde type operatoren
waar je plus gelijken of min gelijken of ster gelijken kunt doen.
Plus is gelijk aan is waar u toevoegt en de toewijzingsoperator.
Dus het voegt de rechter operand toe aan de linker operand en wijst vervolgens de
resultaten toe aan de linker operand.
Dus je zou kunnen zeggen dat c plus gelijk is aan a, en dat is hetzelfde als zeggen dat c gelijk is aan c plus a.
Min is gelijk aan exact hetzelfde, behalve dat je aftrekt. Je trekt af en wijst toe.
Dus je trekt de rechter operand af van de linker operand en wijst vervolgens de gegevens toe.
Dus als je zegt dat c min gelijk is aan a, is het in werkelijkheid c gelijk aan c min a.
Het is een verkorte notatie, deze plus is gelijk aan en min is gelijk aan.
Je kunt dingen een beetje sneller schrijven omdat
je 2 bewerkingen in
wezen in één enkele verklaring doet.
En dan hetzelfde vermenigvuldigen, ster gelijk aan, vermenigvuldigen en toewijzen.
Dus c ster is gelijk aan a is gelijk aan c is gelijk aan c maal a.
Dat is vrij rechttoe rechtaan denk ik.
De andere
toewijzingsoperatoren zijn vergelijkbaar, behalve dat u deling gebruikt. Dus delen is gelijk aan delen en dan tekenen.
Percentage is de modulus en wijs vervolgens het resultaat toe.
Dus die zijn vrij eenvoudig.
En dan hebben we nog enkele andere, waarover we in een andere lezing meer in detail zullen spreken.
Dus ik ga ze hier niet aanraken, want ze zijn echt heel anders.
Ze worden de bitsgewijze operatoren genoemd, die links blijven
staan en alles wat ik hier wil zeggen is dat je ze
voor die bitsgewijze operatoren waar we het
over gaan hebben, ze ook in afzonderlijke instructies kunt toewijzen.
Dus verschuiven, een shift naar links en
een shift naar rechts en toewijzen, je kunt gewoon minder doen dan minder dan gelijken en groter schrijven dan groter dan gelijken.
En dan hebben de ampersand, de wortel en de parallelle balk
allemaal te maken met dingen op bits doen.
Dus daar komen we op terug, maar ze maken deel uit van de toewijzingsoperatoren.
Dus de toewijzingsoperator is gewoon vrij eenvoudig, het toewijzen van gegevens en als
je dan daadwerkelijk uitdrukkingen wilt doen, een paar uitdrukkingen,
en het dan toewijzen, doe je de combinaties.
De relationele operatoren zijn vergelijkingsoperatoren. Ze vergelijken 2 waarden.
Dus dit is belangrijk, is gelijk aan is. We vergelijken de waarde van 2 variabelen.
En als ze hetzelfde zijn, wordt true geretourneerd omdat het een Booleaanse
expressie, true of false of Booleaanse waarde gaat retourneren.
Uitroepteken is gelijk aan controleren of de waarden van 2 operanden gelijk zijn of niet.
Dus a is niet gelijk aan b is hoe je dat wilt lezen.
Als a waar is en b
waar, dan wordt onwaar geretourneerd omdat ze gelijk zijn.
Dus a zou onwaar
moeten zijn of b zou waar moeten zijn of omgekeerd, en dat zou waar zijn. Het groter dan-symbool controleert of a wel of niet
groter is dan b.
Kleiner dan symbool, a is kleiner dan b. Groter dan gelijk aan, a is groter dan
of gelijk en kleiner dan gelijk.
Dus nogmaals, dit zijn allemaal elementaire wiskundedingen.
Ik ga geen voorbeelden in de IDE doornemen, omdat dit vrij eenvoudig is.
Vergelijkingsoperator is net als in wiskunde, groter dan gelijk aan, enzovoort.
Dus hopelijk hebben we een goede greep
op de basisoperatoren rekenkunde, logica, toewijzing en relationeel.
Veel gebruikt, dus je moet ze begrijpen. Hopelijk is het niet te
moeilijk of verwarrend.
Je gaat hier veel van
gebruiken in if-statements en beslissingsstatements, dus we zullen hier nog veel meer voorbeelden van geven. Dank u.