Programmieren in C

von Prof. Dr. Rainer Thomas

4. Ausdrücke und Operatoren

4.1 Arithmetische Operatoren
4.2 Vergleichsoperatoren
4.3 Logische Operatoren
4.4 Bitmanipulationsoperatoren
4.5 Zusammengesetzte Zuweisungsoperatoren
4.6 Typkonvertierung
4.7 Bedingte Ausdrücke
4.8 Abarbeitungsreihenfolge

 

Ausdrücke und Operatoren in C - Allgemeines


4.1 Arithmetische Operatoren

Arithmetische Operatoren (1) - konventionelle Operatoren

Arithmetische Operatoren - konventionelle Operatoren

/*-----------------------------------------------------------------*/
/* Programm DIVDEM                                                 */
/*-----------------------------------------------------------------*/
/* Demonstrationsprogramm zum Divisions-Operator */
/*-----------------------------------------------------------------*/

#include <stdio.h>

void main(void)
{
  int   i=7, j=4, k;
  double a,b,c,d;

  k=i/j;            /* k = 1     ! */

  a=i;              /* automatische     */
  b=j;              /* Typkonvertierung */

  c=a/b;            /* c = 1.75  ! */
  d=i/j;            /* d = 1.0   ! */

  printf("\nk = %d\nc = %f\nd = %f\n",k,c,d);

  k=a/b;
  printf("\nk = %d\n",k);
Bildschirmausgabe :

Arithmetische Operatoren - Increment- und Decrement-Operator


4.2 Vergleichs-Operatoren

4.3 Logische Operatoren

Logische Operatoren in C

Beispiel zu logischen Operatoren in C

/* ------------------------------------------------------------------- */
/* Programm CHARZAHL */
/* ------------------------------------------------------------------- */
/* Zaehlen der Bu, Zi, SoZ und StZ in dem ueber stdin eingegebenen     */
/* Text                                                                */
/* ------------------------------------------------------------------- */

#include <stdio.h>

void main(void)

{ int c, zbu, zzi, zso, zst;

  zbu=zzi=zso=zst=0;

  while((c=getchar())!=EOF)
    if (c<='\x1F' || c=='\x7F')                       /* Steuerzeichen */
      zst++;
    else if (c>='0' && c<='9')                       /* Ziffern */
      zzi++;
    else if (c>='A' && c<='Z' || c>='a' && c<='z')   /* Buchstaben */
      zbu++;
    else zso++;                                      /* Sonderzeichen */

  putchar('\n');
  printf("Buchstaben    = %4d\n",zbu);
  printf("Ziffern       = %4d\n",zzi);
  printf("Sonderzeichen = %4d\n",zso);
  printf("Steuerzeichen = %4d\n",zst);
}
/* -------------------------------------------------------------------- */
Bildscirmausgabe :

4.4 Bitmanipulationsoperatoren


4.5 Zusammengesetzte Zuweisungsoperatoren


4.6 Typkonvertierung

Implizite Typumwandlung in C (ANSI-C)

Explizite Typumwandlung in C : Cast-Operator


4.7 Bedingte Ausdrücke in C


4.8 Abarbeitungsreihenfolge

Hierachie der Operatoren in C

Priorität Operator Operation Assoziativität
15 *) ()
[]
.
-> 
Funktionsaufruf
Indizierung (Array)
Element (Structure)
Element (Structure) 
---> **)
14 -
!
++ --
-
+
*
¨
(type)
sizeof 
bitw. Komplement
Komplement
Increment/Decrement
Negation (arithm.)
Identität (arith.)
Pointer-Objekt
Typkonvertierung
Größe in Bytes 
<--- **)
13 * / % Mult./Div. Modulo --->
12 + - Addition/subtrakt. --->
11 << >> Verschiebung --->
10 < > <= >= Vergleich --->
9 == != Vergleich --->
8 & bitweises UND --->
7 ^ bitweises EXOR --->
6 | bitweises ODER --->
5 && UND --->
4 || ODER --->
3 ?: bedingte Auswertung <---
2 =
*= /= %=
+= -=
<<= >>=
&= |= ^= 
Zuweisung <---
1 , sequentielle Auswer. --->


Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © FH München, FB 04, Prof. Dr. Rainer Thomas
V - PC - 401 - 00 - TH - 01
V - PC - 411 - 00 - TH - 06
V - PC - 412 - 00 - TH - 06
V - PC - 421 - 00 - TH - 04
V - PC - 431 - 00 - TH - 03
V - PC - 440 - 00 - TH - 02
V - PC - 441 - 00 - TH - 05
V - PC - 451 - 00 - TH - 02
V - PC - 452 - 00 - TH - 03
V - PC - 461 - 00 - TH - 02
V - PC - 472 - 00 - TH - 03
V - PC - 473 - 00 - TH - 04
V - PC - 474 - 00 - TH - 02
V - PC - 481 - 00 - TH - 02
V - PC - 491 - 00 - TH - 06