Heim >Backend-Entwicklung >C#.Net-Tutorial >Operatorpriorität in der C-Sprache (Codebeispiel)

Operatorpriorität in der C-Sprache (Codebeispiel)

藏色散人
藏色散人Original
2019-02-27 09:35:0991605Durchsuche

Operatorpriorität in der C-Sprache: 1. Operatoren der ersten Ebene haben Bezeichner und Konstanten. 2. Operatoren der zweiten Ebene umfassen Array-Indexoperationen und Funktionsaufrufe 4. Der Operator der vierten Ebene erzwingt, dass der Ausdruck ein bestimmter Typ wird. 5. Der Operator der fünften Ebene ist der Multiplikationsoperator usw.

Operatorpriorität in der C-Sprache (Codebeispiel)

Beispiel: x = 7 + 3 * 2; Hier wird x der Wert 13 statt 20 zugewiesen, da die Priorität des Operators * höher als + ist , also multipliziert es zuerst 3*2 und addiert es dann zu 7.

Hier erscheint der Operator mit der höchsten Priorität oben in der Tabelle und der Operator mit der niedrigsten Priorität unten in der Tabelle. Innerhalb eines Ausdrucks werden Operatoren mit höherer Priorität zuerst ausgewertet.

  • Operatoren der ersten Ebene: Bezeichner, Konstanten, Zeichenfolgenliterale und Prioritätsförderungsausdrücke werden zuerst ausgeführt.

  • Sekundäre Operatoren: Array-Indexoperation (Ausdruck), Funktionsaufruf (Argument-Ausdruck-Liste), Mitgliedszugriff (Bezeichner, -> Bezeichner), Suffixinkrement (i++), Suffix Dekrement (i--), zusammengesetzte Initialisierung (Initialisatorliste).

  • Operatoren der dritten Ebene: Präfix-Inkrement (++i), Präfix-Dekrement (--i), unärer Transformationsausdruck (Adresse abrufen &, * zurückziehen, positives Vorzeichen +, negatives Vorzeichen -, Bitinversion ~ logisch nein!), ermitteln Sie die Typlänge (Größe des unären Ausdrucks).

  • Operator der vierten Ebene: Erzwingt, dass der Ausdruck zu dem Typ wird, der durch Typname (Typname) cast-expression angegeben wird.

  • Fünfstufige Operatoren: Multiplikationsoperator „*“.

  • Sechsstufige Operatoren: Additionsoperator „+“.

  • Operator mit sieben Ebenen: db91e5d82bf9e8d06d81f30d24668ff3>

  • Achtstufige Operatoren: 91eef5681cad6f0cc96f9adeb2931b45, >= relationale Operatoren.

  • Neunstufige Operatoren: „==“ ist gleich Operator; „!=“ ist nicht gleich Operator.

  • Operator der zehnten Ebene: „&“ bitweiser UND-Operator.

  • Operator der elften Ebene: „∧“ bitweiser XOR-Operator.

  • Zwölfstufige Operatoren: „ | “ bitweiser ODER-Operator.

  • Operator der dreizehnten Ebene: Logischer UND-Operator „&&“.

  • Operator der vierzehnten Ebene: „||“ Logischer ODER-Operator.

  • Operatoren der fünfzehnten Ebene: ? :Bedingter Operator.

Die Rangfolge der Operatoren in der C-Sprache ist wie folgt (von hoch nach niedrig):

运算符 关联性
() [] -> . ++ - - 左到右
+ - ! ~ ++ - - (type)* & sizeof 右到左
* / % 左到右
+ - 左到右
10e3fdaca48eb0367c6d60dbc98f885d> 左到右
7cb9091baf3e2c81106f6565e75575c8 >= 左到右
== != 左到右
& 左到右
^ 左到右
| 左到右
&& 左到右
|| 左到右
?: 右到左
= += -= *= /= %=>>= <<= &= ^= |= 右到左
, 左到右

Beispiel für Operatorpriorität in C:

#include <stdio.h>main() {

   int a = 20;
   int b = 10;
   int c = 15;
   int d = 5;
   int e;
 
   e = (a + b) * c / d;      // ( 30 * 15 ) / 5
   printf("Value of (a + b) * c / d is : %d\n",  e );

   e = ((a + b) * c) / d;    // (30 * 15 ) / 5
   printf("Value of ((a + b) * c) / d is  : %d\n" ,  e );

   e = (a + b) * (c / d);   // (30) * (15/5)
   printf("Value of (a + b) * (c / d) is  : %d\n",  e );

   e = a + (b * c) / d;     //  20 + (150/5)
   printf("Value of a + (b * c) / d is  : %d\n" ,  e );
  
   return 0;}

Ausgabe:

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is  : 90
Value of (a + b) * (c / d) is  : 90
Value of a + (b * c) / d is  : 50

Verwandte Empfehlungen: „C-Tutorial

Dieser Artikel ist eine Einführung in die Operatorpriorität in der C-Sprache. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Das obige ist der detaillierte Inhalt vonOperatorpriorität in der C-Sprache (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn