Programmiersprache C: Inkrement, Dekrement und Bit-Verschiebung

---------------------------------------------1. Inkrement--------------------------------------------

In der Programmiersprache wird eine Zahl mit dem Operator ++ erhöht:

Beispiel
#include

int main(){

//Erst wird die Zahl mit dem Wert 1 initialisiert
int meineZahl = 1;
// und hier wird um 1 erhöht
meineZahl++;
// meineZahl kann man genauso erhöhen in dem man 1 dazu addiert z.B. "meineZahl = meineZahl+1;"
printf("%d",meineZahl);
return 0;
}
Ausgabe: 2

In der Anweisung printf wird die Zahl noch mal um 1 erhöht. Allerdings ohne Wirkung da erst die Ausgabe erfolgt und dann Zahl um 1 erhöht wird. Wenn der Operator vor der Variable kommt, wird erst die Zahlt erhöht und dann ausgegeben. In diesem Fall kommt der Operator nach der Variable.

#include

int main(){

//Erst wird die Zahl mit dem Wert 1 initialisiert
int meineZahl = 1;
// und hier wird um 1 erhöht
meineZahl++;
// in der Anweisung printf wird die Zahl noch mal um 1 erhöht
printf("%d",meineZahl++);
return 0;
}
Ausgabe: 2

Hier wird die Zahl in printf erst erhöht und dann ausgegeben:
#include

int main(){

//Erst wird die Zahl mit dem Wert 1 initialisiert
int meineZahl = 1;
// und hier wird um 1 erhöht
meineZahl++;
// in der Anweisung printf wird die Zahl noch mal um 1 erhöht
printf("%d",++meineZahl);
return 0;
}
Ausgabe: 3

-----------------------------------------2. Dekrement-------------------------------------------

In der Programmiersprache wird eine Zahl mit dem Operator – um 1 reduziert. Hier gelten gleiche Regeln wie beim Inkrement:
- Wenn der Operator vor der Variable kommt, wird erst Operator ausgeführt und dann die restlichen Anweisungen(Zuweisung, Ausgabe etc.)
- Wenn der Operator nach der Variable kommt, wird die Anweisung ausgeführt und der Operator.

Beispiel 1:
#include

int main(){

int MeineErsteZahl =5;
int MeineZweiteZahl=0;
MeineZweiteZahl = MeineErsteZahl--;
printf("1.Ausgabe: %d \n",MeineZweiteZahl);
MeineZweiteZahl = --MeineErsteZahl;
printf("2.Ausgabe: %d \n",MeineZweiteZahl);
return 0;
}

1.Ausgabe: 5
2.Ausgabe: 3

-----------------------------------------3. Bitweise Verschiebung-------------------------------------------

Bitweise Verschiebung mit dem Operator oder >> ausgeführt. Mit dem Operator kann bits nach link oder nach rechts verschieben.

Beispiel:

#include

int main(){

int meineZahl=2; //Binär wird die Zahl 2 so dargestellt: 0010
meineZahl = meineZahl 2;
printf("%d",meineZahl); // Ausgabe ist 8. Da wir die 2 zwei Mal nach Links verschoben haben. Nun sieht es so aus: 1000
}

------------------------------------------------------4.Übung---------------------------------------------------------------------------
Nun machen wir eine Übung mit 4 Variablen, die durch verschiedene Operatoren manipuliert werden:

#include

int main(){

int a=5, b=9, c=15, d;

c += ++a + b;
printf("c += ++a + b;: a: %d, b: %d, c: %d, d: %d \n" ,a,b,c,d);
// Ausgabe: a: 6, b: 9, c: 30, d: 85
d = --c-b++;
printf("d = --c-b++;: a: %d, b: %d, c: %d, d: %d \n" ,a,b,c,d);
// Ausgabe: a: 6, b: 10, c: 29, d: 20
a +=b 1; 14 ;
printf("a +=b 1; 14 ;: a: %d, b: %d, c: %d, d: %d \n" ,a,b,c,d);
// Ausgabe: a: 26, b: 10, c: 29, d: 20
c += b + --a;
printf("c += b + --a;: a: %d, b: %d, c: %d, d: %d \n" ,a,b,c,d);
// Ausgabe: a: 25, b: 10, c: 64, d: 20
d %= 14;
printf("d %= 14;: a: %d, b: %d, c: %d, d: %d \n" ,a,b,c,d);
// Ausgabe: a: 25, b: 10, c: 64, d: 6
return 0;

}

}

Neuen Kommentar schreiben

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Suche

Neueste Kommentare

  • 1 month ago
    [preflight] The following restricted PHP modes have non-empty values: {open_basedir}. This configuration is incompatible with drush.

    Same with Drush 13 + PHP 8.3

  • 1 month ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    Initializing...

    Error : Failed to install the required package 'RPM' by using APT. Please install it manually. 

    Exit


    Solution:

  • 1 month ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    So habe es installiert und dann mit Hilfe von Key/Code (über Website von Acronis Cyber Protect) aktiviert:

  • 1 month 1 week ago
    No route found for the specified format html. Supported formats: csv, json. (Drupal Routing)

    I have a view with a path like /my-content-export to export entivies as JSON or CSV.

  • 1 month 1 week ago
    InvalidArgumentException: The controller for URI "/admin/flush" is not callable.

    admin_toolbar 3.5.2 is the reason. Patch coming ...

  • 1 day 7 hours ago
    PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock

    Drupal 10.4:

  • 2 months 1 week ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr

    Tools & Settings >> Security Policy :

     Allow only secure FTPS connections 

  • 3 months 3 weeks ago
    MariaDB Server Performance Optimieren

     

    /usr/sbin/mariadbd --help --verbose | grep "query.*size"
  • 3 months 3 weeks ago
    MariaDB Server Performance Optimieren

    Commandline:

    systemctl restart mariadb
  • 3 months 3 weeks ago
    MariaDB Server Performance Optimieren

    After my changes in /etc/mysql/db-performance.cnf