GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux C-Programmiertutorial Teil 12 - Zuweisungsoperatoren und bedingte Ausdrücke

In dieser fortlaufenden Tutorial-Serie zur C-Programmierung haben wir bereits einige der grundlegenden Dinge wie arithmetische, logische und relationale Operatoren sowie Bedingungsschleifen wie „if“ und „while“ besprochen. Darüber hinaus konzentriert sich dieses Tutorial auf Zuweisungsoperatoren (außer =) und bedingte Ausdrücke.

Beginnen wir mit Zuweisungsoperatoren. Wenn Sie bis jetzt einfache C-Programme erstellt haben (was Sie sicherlich getan haben, nachdem Sie unsere Tutorial-Reihe verfolgt haben), besteht eine hohe Wahrscheinlichkeit, dass Sie etwas Ähnliches wie das Folgende getan haben:

a = a + 1;

Richtig?

Das Neue, was wir heute lernen werden, ist, dass Sie diesen Ausdruck wie folgt umschreiben können:

a += 1;

Ja, das  +=ist ein Operator und wird auch als Zuweisungsoperator bezeichnet.

Wenn ich jetzt sage, dass die Verwendung von Zuweisungsoperatoren wie diesen den Code kompakter und lesbarer macht, könnten einige von Ihnen argumentieren, dass im Kontext des von uns verwendeten Beispiels ein Inkrementoperator genauso gut gewesen wäre, da dies auch den Wert von 'a ' wird um 1 erhöht.

a++;

Ich stimme zu, aber denke an andere Szenarien wie die folgenden:

b = b + 10;
b = b + c

In diesen Fällen erleichtert die Verwendung des Zuweisungsoperators das Schreiben, Lesen und Überprüfen des Codes definitiv in einem Schritt.

Immer noch nicht überzeugt? Vielleicht vermittelt Ihnen das folgende generische Beispiel eine noch bessere Vorstellung vom Wert von Zuweisungsoperatoren. Schau mal:

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] = arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] + 5 

Diese Codezeile braucht Zeit, um genau verstanden zu werden, da Sie sicherstellen müssen, dass die beiden Arrays (auf jeder Seite des =-Operators) auf denselben Wert verweisen oder nicht. In diesem Fall ist dies der Fall, daher wäre es besser, einen Zuweisungsoperator wie folgt zu verwenden:

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] += 5;

Die Verwendung eines Zuweisungsoperators in diesem Fall machte die Zeile also nicht nur sehr leicht verständlich, sondern machte sie auch Compiler-freundlicher in dem Sinne, dass sie dem Compiler helfen kann, effizienten Code zu produzieren.

Nun, da Sie überzeugt sind (ich hoffe wirklich, dass Sie das tun), dass Zuweisungsoperatoren nützlich sind, finden Sie hier eine Liste von Operatoren, die einen entsprechenden binären Operator haben:

+ - * / % << >> & ^ |

Die ersten fünf Operatoren in der Liste haben wir bereits in unseren bisherigen Tutorials besprochen. Die letzten fünf sind bitweise Operatoren, und wir werden sie in einem unserer kommenden Tutorials besprechen. In der Zwischenzeit finden Sie hier eine kurze Referenz zu Zuweisungsoperatoren, die einigen dieser Operatoren entsprechen:

a += b;
a -= b;
a *= b;
a /= b;
a %= b;

Im Allgemeinen können Sie also Folgendes beachten:

expression1 = (expression1) op (expression2)

kann ausgedrückt werden als:

expression1 op= expression2

wobei 'op' der verwendete Operator ist, wie +, -, * und mehr.

Bitte beachten Sie, dass der folgende Ausdruck sowie ähnliche Ausdrücke:

a *= b - c 

wird erweitert als:

a = a * (b-c)

Ich hoffe, ich konnte das Konzept der Zuweisungsoperatoren zumindest auf der grundlegenden Ebene verdeutlichen. Lassen Sie uns nun schnell bedingte Ausdrücke besprechen.

Nehmen Sie das folgende Beispiel:

if(a==b)
c = c + 1;
else
c = c - 1;

Bedingte Ausdrücke helfen Ihnen, Logiken wie diese in einer einzigen Zeile zu schreiben. So geht's:

c = (a==b) ? (c+1) : (c -1)

Hier wird also zuerst die Bedingung (a==b) geprüft. Wenn es wahr ist, wird (c+1) c zugewiesen, andernfalls wird (c-1) c zugewiesen. Hier ist ein Beispielcode, um die Dinge klarer zu machen:

int main()
{
int a = 6, b = 5, c = 9;

c = (a==b) ? (c+1) : (c -1) ;

printf("\n %d \n", c);

return 0;
}

Da a hier nicht gleich b ist, wird c also (c-1) zugewiesen, was bedeutet, dass der neue Wert von c 8 wird. Nur für den Fall, dass Sie es brauchen, hier ist die generische Form von bedingten Ausdrücken:

expression1 ? expression2 : expression3

Ich hoffe, Sie haben eine grundlegende Vorstellung von Zuweisungsoperatoren und bedingten Ausdrücken. Sie werden jetzt ermutigt, diese in Ihren täglichen Programmieraktivitäten zu verwenden, und wenn Sie auf irgendwelche Probleme stoßen, vergessen Sie nicht, uns hier einen Kommentar zu hinterlassen.


Linux
  1. Linux nice and renice Command Tutorial (7 Beispiele)

  2. C-Programmier-Tutorial Teil 5 - Zeichenvariablen

  3. Linux C-Programmier-Tutorial Teil 10 - Variable Gültigkeitsbereiche

  4. Linux C-Programmier-Tutorial Teil 9:Strings

  5. Linux C-Programmier-Tutorial Teil 8 – Aufruf nach Wert vs. Aufruf nach Zeiger/Adresse

5 interessante Kommandozeilen-Tipps und Tricks in Linux – Teil 1

Wie man Textdateien unter Linux vergleicht und zusammenführt (Teil 2)

So installieren und verwenden Sie KompoZer unter Linux - Tutorial

So installieren und verwenden Sie Kerkythea unter Linux - Tutorial

Verwenden von sed zum Suchen und Ersetzen von Textdateien in Linux

Diskussion über Windows, Linux und cPanel VPS – Teil II