Show Menu
Cheatography

------C Basics------

Datentypen

Typ
Bytes
Bereich
int
2 oder 4
±32.000 oder ±2.000.000.000
double
8
Kommazahl: 15 Stellen und ±10308
char
1
ASCII Buchstaben
int_Nt
N
-2N-1 bis 2N-1
uint_Nt
N
0 bis 2N-1

Operatoren

+ , - , * , /
Plus, Minus, Mal, Geteilt
%
Rest (9 % 4 = 1)
== , !=
Gleich, Ungleich
> , < , >= , <=
Größer, Kleiner
&& , || , !
Und, Oder, Nicht

Zahlen, Zeichen und Strings

char c ='A';
einzelnes Zeichen
char s[6] = "­Hal­lo";
Zeiche­nke­tte­/String
Escape­-Se­que­nzen:
\' , \", \? , \\ , \n , \t
' , " , ? , \ , neue Zeile, Tab
Zahlen­for­mate:
int bin= 0b1010110
int octal = 021
int hex = 0x1A
double expone­nt = 1.5e3
Jeder String endet intern mit \0, "­Hal­lo" == "­Hallo\0 "

Arrays

int numbers[3] = { 4, 5, 6 };
int number­s[100] = { 0 };
Alle Elemente sind 0
int table[­3][3];
2 Dimesi­onales Array
char *colors[2] = { "­blu­e", "­yel­low­" }
Intern sind Arrays Zeiger: a[0] == *a , a[1] == *a(a + 1)

Zeiger

&
Adress­ope­rator
*
Derefe­ren­zie­run­gso­perator
int *pi = &i;
Speichern der Adresse von i
*pi = 5;
Zugriff auf i
Adresse zum Kopieren und Teilen von Daten

Schleifen und Verzwe­igungen

Loops
for (int i = 0; i < 4; i++) {  ... }
for (int i = 0, j = 10; i < 5; i++, j--){ ... }
while (a == 7) { ... }
do { ... } while (a == 5);
If...else
if (n  <  2) { ... }       
else if (n  <  4) { ... }          
else { ... }
Switch               
switch (n) {
    case 1: { ... }; break;
    case 2: { ... }; break; 
    default: { ... }; break;
}
Break/Continue
break: beendet Schleife
continue: beendet Duchlauf
 

Funktionen

int sum(int a, int b) {
    return a + b;
}

void add5(int *a) {
    *a = *a + 5;
    return;
}
// main function
int main() { 
    return 0;
}

Präpro­zessor

#define MAX 100
Konstante
#include <fi­len­ame>
Importiert Standa­rd-­Bib­liothek
#include "­fil­ena­me"
Impotiert eigene Header­-Datei
In einer Header­-Datei werden Funktionen deklar­iert, die in mehreren Dateien genutzt werden.

Speich­erv­erw­altung

// Datenmenge einlesen
scanf(­"­%i", &d­ata­Count);
// Speich­erplatz reserv­ieren
int *dynData;
dynData = (int*) malloc­(si­zeo­f(int) * dataCo­unt);
// Speich­erplatz freigeben
free(d­ynD­ata);

Enum

typedef enum { SLOW = 5, FAST = 100 } Speed;    
Speed carSpeed = SLOW;
// default:  C1 = 1, C2 = 2 usw.

Strukturen

typedef struct {
    int day;
    char month[4];
} Date;

Date today= { 1, "Jun" }; // Anlegen einer Instanz
today.day = 2; //Zugriff auf Elemente

Date *pToday = &today //Anlegen eines Zeigers
pToday->day = 3; // Zugriff auf Elemente

/*Alternativen mit wenig Speicherverbrauch: union und bitfield*/

Dateib­ear­beitung

fopen()
Öffnen einer Datei
fclose()
Schließen einer Datei
fseek()
Verändern der Bearei­tun­gsp­osition
fgetc(), fputc()
Zeiche­nweise Lesen/­Sch­reiben
fscanf(), fprintf()
Format­iertes Lesen/­Sch­reiben
fgets()
Zeilen­weise Lesen
fputs()
String­weise Scheiben
fread(), fwrite()
Binäres Lesen/­Sch­reiben (bytew­eise)
sscanf(), sprintf()
Strings Lesen/­Sch­reiben
Details auf https:­­//­c­p­lu­­spl­­us.c­­om­­/re­­fe­r­e­nc­­e/c­­stdio

Input & Output

#include <st­dio.h>
Bibliothek für Ein-/A­usgabe
printf­("My age is %d", age);
Ausgabe auf Konsole
scanf(­"­%d", &v­alue)
Tastat­ure­ingabe (unsafe)
%d , %c , %s, %lf
int, char, string, double
Format­angabe: %[flag­s][­wid­th]­[.p­rec­isi­on]­[le­ngt­h]s­pec­ifier
Details auf https:­//c­plu­spl­us.c­om­/re­fer­enc­e/c­stdio

Abkürz­ungen

a++
a = a + 1
a += 2
a = a + 2
q? a1 : a2
if q a1 else a2
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          C Reference Cheat Sheet
          C program Cheat Sheet