Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

Master C Operators voor het verhogen en verlagen:gebruik en best practices

C - Operatoren voor verhogen en verlagen

De operator voor verhogen (++) verhoogt de waarde van een variabele met 1, terwijl de operator voor verlagen (--) de waarde verlaagt.

Operatoren voor het verhogen en verlagen worden vaak gebruikt bij de constructie van getelde lussen in C (met de for-lus). Ze worden ook toegepast bij het doorlopen van array- en pointer-berekeningen.

De operatoren ++ en -- zijn unair en kunnen worden gebruikt als voorvoegsel of posfix voor een variabele.

Voorbeeld van operatoren voor verhogen en verlagen

Het volgende voorbeeld bevat meerdere instructies die het gebruik demonstreren van operatoren voor verhogen en verlagen met verschillende variaties −

#include <stdio.h>
int main() {
 int a = 5, b = 5, c = 5, d = 5;
 
 a++; // postfix increment
 ++b; // prefix increment
 c--; // postfix decrement
 --d; // prefix decrement
 printf("a = %d\n", a);
 printf("b = %d\n", b);
 printf("c = %d\n", c);
 printf("d = %d\n", d);
 return 0;
}

Uitvoer

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

a = 6
b = 6
c = 4
d = 4

Voorbeeld Uitleg

Met andere woorden:"a++" heeft hetzelfde effect als "++a", aangezien beide uitdrukkingen de waarde van variabele "a" met 1 verhogen. Op dezelfde manier heeft "a--" hetzelfde effect als "--a".

De uitdrukking "a++;" kan worden behandeld als het equivalent van de uitspraak "a =a + 1;". Hier telt de uitdrukking aan de rechterkant 1 op bij "a" en wordt het resultaat terug toegewezen aan 1, waarbij de waarde van "a" met 1 wordt verhoogd.

Op dezelfde manier, "b--;" is gelijk aan "b =b 1;".

Typen verhogingsoperator

Er zijn twee soorten verhogingsoperatoren:pre-verhoging en postverhoging .

Pre (voorvoegsel) operator

In een expressie verhoogt de pre-increment-operator de waarde van een variabele met 1 voordat de waarde van de variabele wordt gebruikt.

Syntaxis

++variable_name;

Voorbeeld

In het volgende voorbeeld gebruiken we een pre-increment-operator, waarbij de waarde van "x" met 1 wordt verhoogd, en vervolgens wordt de verhoogde waarde in de uitdrukking gebruikt.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + ++x;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

x = 11, y = 21

Post (Postfix) verhogingsoperator

In een expressie verhoogt de post-increment-operator de waarde van een variabele met 1 na gebruik van de waarde van de variabele.

Syntaxis

variable_name++;

Voorbeeld

In het volgende voorbeeld gebruiken we de post-increment-operator, waarbij de waarde van "x" in de uitdrukking wordt gebruikt en vervolgens met 1 wordt verhoogd.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + x++;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

x = 11, y = 20

Typen verlagingsoperator

Er zijn twee typen verlagingsoperatoren:pre-verlaging en postverlaging .

Pre (Prefix) operator verlagen

In een expressie verlaagt de pre-decrement-operator de waarde van een variabele met 1 voordat de waarde van de variabele wordt gebruikt.

Syntaxis

--variable_name;

Voorbeeld

In het volgende voorbeeld gebruiken we een pre-decrement-operator, waarbij de waarde van "x" met 1 wordt verlaagd, en vervolgens wordt de verlaagde waarde in de uitdrukking gebruikt.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + --x;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

x = 9, y = 19

Post (Postfix) verlagingsoperator

In een expressie verlaagt de post-decrement-operator de waarde van een variabele met 1 na gebruik van de waarde van de variabele.

Syntaxis

variable_name--;

Voorbeeld

In het volgende voorbeeld gebruiken we de post-decrement-operator, waarbij de waarde van "x" in de uitdrukking wordt gebruikt en vervolgens met 1 wordt verlaagd.

#include <stdio.h>
int main() {
 int x = 10;
 int y = 10 + x--;
 printf("x = %d, y = %d\n", x, y);
 return 0;
}

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

x = 9, y = 20

Meer voorbeelden van operatoren voor verhogen en verlagen

Voorbeeld 1

Het volgende voorbeeld benadrukt het gebruik van prefix/postfix verhogen/verlagen −

#include <stdio.h>
int main(){
 char a = 'a', b = 'M';
 int x = 5, y = 23;
 printf("a: %c b: %c\n", a, b);
 
 a++;
 printf("postfix increment a: %c\n", a);
 
 ++b;
 printf("prefix increment b: %c\n", b);
 printf("x: %d y: %d\n", x, y);
 
 x--;
 printf("postfix decrement x : %d\n", x);
 
 --y;
 printf("prefix decrement y : %d\n", y);
 return 0;
}

Uitvoer

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

a: a b: M
postfix increment a: b
prefix increment b: N
x: 5 y: 23
postfix decrement x: 4
prefix decrement y: 22

Uit het bovenstaande voorbeeld blijkt dat zowel de prefix- als de postfix-operatoren hetzelfde effect hebben op de waarde van de operandvariabele. Wanneer deze operatoren "++" of "--" echter samen met de andere operatoren in een expressie voorkomen, gedragen ze zich anders.

Voorbeeld 2

In de volgende code zijn de beginwaarden van de variabelen "a" en "b" hetzelfde, maar geeft de functie printf() verschillende waarden weer −

#include <stdio.h>
int main(){
 int x = 5, y = 5;
 printf("x: %d y: %d\n", x,y);
 printf("postfix increment x: %d\n", x++);
 printf("prefix increment y: %d\n", ++y);
 return 0;
}

Uitvoer

Voer de code uit en controleer de uitvoer −

x: 5 y: 5
postfix increment x: 5
prefix increment y: 6

In het eerste geval drukt de functie printf() de waarde van "x" af en verhoogt vervolgens de waarde ervan. In het tweede geval wordt eerst de increment-operator uitgevoerd en gebruikt de printf()-functie de opgehoogde waarde voor het afdrukken.

Operatorprioriteit van operators voor het verhogen en verlagen

Er zijn een aantal operators in C. Wanneer meerdere operators in een expressie worden gebruikt, worden deze uitgevoerd volgens hun prioriteitsvolgorde. Operatoren voor verhogen en verlagen gedragen zich anders wanneer ze samen met andere operators worden gebruikt.

Wanneer een expressie bestaat uit operatoren voor verhogen of verlagen naast andere operators, worden de bewerkingen voor verhogen en verlagen eerst uitgevoerd. Operatoren voor het verhogen en verlagen van postfix hebben een hogere prioriteit dan operatoren voor verhogen en verlagen van het voorvoegsel.

Lees ook: Operatorvoorrang in C

Voorbeeld 1

Kijk eens naar het volgende voorbeeld −

#include <stdio.h>
int main(){
 int x = 5, z;
 printf("x: %d \n", x);
 z = x++;
 printf("x: %d z: %d\n", x, z);
 return 0;
}

Uitvoer

Voer de code uit en controleer de uitvoer −

x: 5 
x: 6 z: 5

Omdat "x++" de waarde van "x" verhoogt naar 6, zou je verwachten dat "z" ook 6 is. Het resultaat toont echter dat "z" 5 is. Dit komt omdat de toewijzingsoperator een hogere prioriteit heeft dan de postfix-ophoogoperator. Daarom wordt de bestaande waarde van "x" toegewezen aan "z", voordat "x" wordt verhoogd.

Voorbeeld 2

Kijk eens naar een ander voorbeeld hieronder −

#include <stdio.h>
int main(){
 int x = 5, y = 5, z;
 printf("x: %d y: %d\n", x,y);
 z = ++y;
 printf("y: %d z: %d\n", y ,z);
 return 0;
}

Uitvoer

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

y: 5
y: 6 z: 6

Het resultaat kan verwarrend zijn, aangezien de waarde van zowel "y" als "z" nu 6 is. De reden hiervoor is dat de operator voor het verhogen van het voorvoegsel een hogere prioriteit heeft dan de toewijzingsoperator. Daarom wordt "y" eerst verhoogd en vervolgens wordt de nieuwe waarde toegewezen aan "z".

Ook de associativiteit van operators speelt een belangrijke rol. Voor operatoren voor verhogen en verlagen loopt de associativiteit van links naar rechts. Als er dus meerdere operatoren voor verhogen of verlagen in een enkele uitdrukking voorkomen, wordt de meest linkse operator als eerste uitgevoerd en naar rechts verplaatst.

Voorbeeld 3

In dit voorbeeld bevat de toewijzingsexpressie zowel de prefix- als de postfix-operator.

#include <stdio.h>
int main(){
 int x = 5, y = 5, z;
 z = x++ + ++y;
 printf("x: %d y: %d z: %d\n", x,y,z);
 return 0;
}

Uitvoer

Voer de code uit en controleer de uitvoer −

x: 6 y:6 z: 11

In dit voorbeeld is de eerste uit te voeren bewerking "y++" ("y" wordt 6). Ten tweede voegt de operator "+" "x" (dat is 5) en "y" toe, het resultaat dat aan "z" is toegewezen als 11, en vervolgens verhoogt "x++" "x" naar 6.

De verhogingsoperator in lus gebruiken

In C is de meest gebruikte syntaxis van een for-lus als volgt −

for (init_val; final_val; increment) {
 statement(s);
}

Voorbeeld

De looping body wordt uitgevoerd voor alle waarden van een variabele tussen de begin- en eindwaarden, en wordt na elke ronde verhoogd.

#include <stdio.h>
int main(){
 int x;
 for (x = 1; x <= 5; x++){
 printf("x: %d\n", x);
 }
 
 return 0;
}

Uitvoer

Wanneer u deze code uitvoert, zal deze de volgende uitvoer produceren −

x: 1
x: 2
x: 3
x: 4
x: 5

C Taal

  1. C - Constanten en Letters
  2. Visual Studio voor C# downloaden en installeren in Windows
  3. C# Array-zelfstudie:maken, declareren, initialiseren
  4. Gecodeerde UI Test Automation Framework-zelfstudie
  5. Opslagklassen in C++
  6. C++ basissyntaxis
  7. C#-zelfstudie-pdf:voorbeelden voor beginners (nu downloaden)
  8. C - Foutafhandeling
  9. std::lijst in C++ met Voorbeeld
  10. C# Stack met Push &Pop-voorbeelden
  11. C# - Evenementen