<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.proggen.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.proggen.org/feed.php">
        <title>proggen.org c:tutorial</title>
        <description></description>
        <link>https://www.proggen.org/</link>
        <image rdf:resource="https://www.proggen.org/lib/tpl/proggenX/images/favicon.ico" />
       <dc:date>2026-05-02T07:47:50+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:advanced&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:architecture&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:architecture_source&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:arrays&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:attribute&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:basics&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:build&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:castings&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:content&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:cstrings&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:decisions&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:enhancement&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:expert&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:expression&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:files&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:finish&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:firststeps&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:functions&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:hworld&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:libraries&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:loops&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:memory&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:meta&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:params&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:pointer&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:project&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:quickops&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:recursion&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:sidebar&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:stack&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:start&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:struct&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:style&amp;rev=1663869537"/>
                <rdf:li rdf:resource="https://www.proggen.org/doku.php?id=c:tutorial:values&amp;rev=1663869537"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.proggen.org/lib/tpl/proggenX/images/favicon.ico">
        <title>proggen.org</title>
        <link>https://www.proggen.org/</link>
        <url>https://www.proggen.org/lib/tpl/proggenX/images/favicon.ico</url>
    </image>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:advanced&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>C-Tutorial - Fortgeschrittene Themen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:advanced&amp;rev=1663869537</link>
        <description>C-Tutorial - Fortgeschrittene Themen

In den vorherigen Lektionen sind wir die Grundlagen der Programmierung durchgegangen. Das war gewissermaßen das Grundvokabular, das erforderlich ist, um überhaupt etwas formulieren zu können. In den folgenden Lektionen werden wir das Wissen anwenden, vertiefen und vor allem werden wir beginnen, Programme zu schreiben, die wirklich etwas tun. Aber hier geht's also nicht mehr nur darum die Sprache C zu lernen, sondern wirklich programmieren zu lernen.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:architecture&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Programmarchitektur</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:architecture&amp;rev=1663869537</link>
        <description>Programmarchitektur

In dieser Lektion werden wir uns ein wenig mit Architektur beschäftigen. Vielleicht hast Du Den Begriff „Software-Architekt“ schon einmal gehört, tatsächlich machen Software-Entwickler gerne Anleihen bei den Architekten. Architekten planen und bauen Häuser, Softwarearchitekten planen und bauen Software. In dieser Lektion werden wir uns also ein paar Gedanken darum machen, wie man ein Programm aufbaut, ohne sich die Steine dabei selbst in den Weg zu legen.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:architecture_source&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vollständiger Quelltext: XML</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:architecture_source&amp;rev=1663869537</link>
        <description>Vollständiger Quelltext: XML

Anleitung

Zu kompilieren mit

gcc html.c

Download

	*  

Ansicht


#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;

struct Parameter
{
  struct Parameter * Next;
 
  char * Name;
  char * Value;
};

void parameter_delete( struct Parameter * toDelete )
{
  if( toDelete )
  {
    printf( &quot;-Parameter: %s\n&quot;, toDelete-&gt;Name );
 
    free( toDelete-&gt;Name );
    free( toDelete-&gt;Value );
    free( toDelete );
  }
}
 
struct Parameter * parameter_newWithLength(…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:arrays&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Arrays</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:arrays&amp;rev=1663869537</link>
        <description>Arrays

	*  Was ist ein Array?
	*  Wie definiert man ein Array?
	*  Initialisieren von Arrays
	*  Lesen aus und Schreiben in ein Array
	*  Wie funktioniert ein Array? 

Was ist ein Array?

Man spricht von einem Array, wenn mehrere Dinge eines Typs zusammengepackt werden. Vielleicht kennt man den Begriff aus dem Film</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:attribute&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Attribute</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:attribute&amp;rev=1663869537</link>
        <description>Attribute

Was sind Attribute?

Von einem Attribut spricht man, wenn man einen Gegenstand genauer beschreibt. Der rote Ball ist ein Ball, der - wenn man ihn genauer beschreibt - als rot beschrieben wird. Rot ist das Attribut. Wir werden uns hier Datentypen-Attribute ansehen, die die Sprache C kennt. Das bedeutet, dass man der Beschreibung eines Datentyps noch eine genauere Beschreibung hinzufügen kann.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:basics&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>C-Tutorial - Die Grundlagen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:basics&amp;rev=1663869537</link>
        <description>C-Tutorial - Die Grundlagen

Sieben Lektionen, um den Einstieg für die Bedienung des C-Compilers zu finden und die Grundlagen der Programmierung mit der Programmiersprache C.

1. Einrichten

	*  Einrichten von Verzeichnissen mit Hilfe der Text-Konsole</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:build&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Build-Systeme</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:build&amp;rev=1663869537</link>
        <description>Build-Systeme

Was sind Build-Systeme?

Wir haben unser HTML-Programm bisher grundsätzlich auf der Konsole kompiliert. Hierfür rufen wir den Compiler mit allen benötigten C-Dateien auf:

gcc main.c node.c parameter.c

Stellen wir uns nun vor, dass wir nicht nur ein kleines Projekt mit 3 Dateien haben, sondern dass wir schon einige Tage, Wochen oder Jahre an einem Projekt arbeiten. Da fällt sicherlich eine Vielzahl von Dateien an und die müssten wir jedes mal zunächst in die Konsole eingegeben we…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:castings&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Castings</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:castings&amp;rev=1663869537</link>
        <description>Castings

	*  Was sind Castings?
	*  Die Umbesetzung
	*  Implizite Casts 
	*  Slicing
	*  Castings vermeiden

Was sind Castings?

Castings kennen wir aus Filmen und Castingshows. Casting heißt „Besetzung“ im Sinne der Besetzung einer Rolle. Welcher Schauspieler besetzt welche Rolle, welcher Gesangsamateur besetzt die Rolle des</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:content&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Die Grundlagen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:content&amp;rev=1663869537</link>
        <description>Die Grundlagen

	*  Übersicht Grundlagen
		*  Einrichten
		*  Das Programm 'Hello proggen.org'
		*  Ausdrücke
		*  Werte verarbeiten
		*  Entscheidungen treffen
		*  Wiederholungen
		*  Funktionen


Fortgeschrittenes

	*  Übersicht Fortgeschrittene Themen
		*  Arrays   
		*  Zeichenketten (Strings)
		*  Zeiger
		*  Übergabeparameter
		*  Dynamische Speicherverwaltung   
		*  Attribute   
		*  Strukturen   
		*  Dateien   
		*  Programmierstil
		*  Optimierte Operatoren


Expertenthemen

	*  Über…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:cstrings&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>C-Strings</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:cstrings&amp;rev=1663869537</link>
        <description>C-Strings

	*  Was ist ein C-String?
	*  Wie definiert man einen C-String?
	*  Länge des Strings
	*  Einzelne Zeichen suchen und austauschen 
	*  Definition von langen Strings

Was ist ein C-String?

In der vorherigen Lektion haben wir uns über Arrays unterhalten und eins der wichtigsten Arrays ist das Array aus Buchstaben, denn ein Text ist nichts anderes als viele hintereinandergereihte Objekte vom Typ 'Buchstabe'. Entsprechend der</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:decisions&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Entscheidungen treffen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:decisions&amp;rev=1663869537</link>
        <description>Entscheidungen treffen

	*  Wie trifft man eine Entscheidung?
	*  Den Programmablauf beeinflussen
	*  Boolische Ausdrücke formulieren 
	*  Boolische Ausdrücke verknüpfen

Wie trifft man eine Entscheidung?

Wenn es sich in diesem Kapitel wieder um Datentypen dreht, dann könnte man sich natürlich fragen, ob der Autor dieses Tutorials sonst nichts zu erzählen hat. Tatsächlich ist es so, dass sich immer wieder alles darum dreht, wie man die Bits und Bytes in seinem Rechner interpretiert. Und es zeig…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:enhancement&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Erweiterungen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:enhancement&amp;rev=1663869537</link>
        <description>Erweiterungen

Wir haben aus einem etwas größeren Quelltext nun ein Projekt mit mehreren Quelltexten erstellt und wissen nun, wie wir ein Projekt aus mehreren Klassen erstellen können.

In dieser Lektion geht es etwas entspannter zu, wir werden das bisherige Projekt etwas erweitern und uns somit ein wenig dem Alltag des Programmierens widmen.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:expert&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Expertenthemen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:expert&amp;rev=1663869537</link>
        <description>Expertenthemen

Castings

	*  Was sind Castings?
	*  Die Umbesetzung
	*  Implizite Casts 
	*  Slicing
	*  Castings vermeiden

lesen...

Der Stack

	*  Was ist ein Stack?
	*  Wo wird der Stack verwendet?
	*  Wie funktioniert der Stack?
	*  Stacks in eigenen Programmen</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:expression&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ausdrücke</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:expression&amp;rev=1663869537</link>
        <description>Ausdrücke

	*  Was ist ein Ausdruck?
	*  Ausdrücke mit Hilfe von Operatoren zusammensetzen
	*  Werte besitzen einen Datentyp

Was ist ein Ausdruck?

Ein Ausdruck ist in einer Programmiersprache - vereinfacht gesagt - etwas, das einen Wert zurück gibt. Das kann man ganz weit auseinander pflücken, aber wir beschränken uns zunächst darauf, dass ein Ausdruck alles ist, was einen Wert besitzt. Zum Beispiel die Zahl</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:files&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Dateien</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:files&amp;rev=1663869537</link>
        <description>Dateien

	*  Was sind Dateien aus Sicht eines C-Programms?
	*  Die Größe einer Datei herausfinden
	*  Eine Datei in den Speicher kopieren
	*  Daten auf die Festplatte schreiben
	*  Text- und Binärdateien
	*  Formatierte Textausgaben

Was sind Dateien aus Sicht eines C-Programms?</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:finish&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Abschluss des C-Tutorials</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:finish&amp;rev=1663869537</link>
        <description>Abschluss des C-Tutorials

Nachdem Du nun das C-Tutorial durchgearbeitet hast, solltest Du einen Überblick zur Sprache C gewonnen und auch einen ersten Blick ins Umfeld geworfen haben, z.B. wie Du größere Projekte grundsätzlich erstellen kannst und wie Du auf Ressourcen von anderen Entwicklern über externe Bibliotheken zurückgreifen kannst.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:firststeps&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Schritt 1: Einrichten</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:firststeps&amp;rev=1663869537</link>
        <description>Schritt 1: Einrichten

	*  Einrichten von Verzeichnissen mit Hilfe der Text-Konsole
	*  Eingabe eines Programms
	*  Kompilieren einer Programm-Datei im Terminal-Fenster
	*  Ausführen des selbstgeschriebenen Programms 

Vorbereitung

Alles was zum Lernen notwendig ist, ist für den Einstieg ein einfacher</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:functions&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Funktionen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:functions&amp;rev=1663869537</link>
        <description>Funktionen

Nach dem aufwendigen Kapitel mit den Schleifen, schauen wir uns nun ein einfacheres Thema an. Nicht einfacher, weil es einfacher wäre, sondern weil wir bereits aus den vorherigen Lektionen Wissen mitbringen, das wir nun in ähnlicher Form wiederfinden werden.
Und letztendlich, weil wir ja bereits die ganze Zeit mit einer Funktion namens</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:hworld&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Das Programm 'Hello proggen.org'</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:hworld&amp;rev=1663869537</link>
        <description>Das Programm 'Hello proggen.org'

	*  Der Aufbau einer Quellcodedatei
	*  Datentypen und Funktionen
	*  Die Funktion main

Der Quelltext

Hier nochmal das Programm, das wir in der vorherigen Lektion kompiliert und ausgeführt haben:


#include &lt;stdio.h&gt;

int main( void )
{
  printf( &quot;Hello proggen.org\n&quot; );
 
  return 0; 
}</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:libraries&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Verwendung externer Librarys</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:libraries&amp;rev=1663869537</link>
        <description>Verwendung externer Librarys

Dies wird das Abschlusskapitel des C-Kurses, denn alles wichtige habe ich vorgestellt, um selbst die ersten Schritte in die eigene Programmentwicklung zu machen.
Wir haben gelernt, Funktionen zu schreiben und sinnvoll anzuordnen. Nun ist es an der Zeit, sich aus der vielfältigen Auswahl von Bibliotheken (Librarys) zu bedienen und deswegen  werden wir uns nun eine externe Bibliotheken ansehen, diese einbinden und die Funktionen darin nutzen.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:loops&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wiederholungen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:loops&amp;rev=1663869537</link>
        <description>Wiederholungen

	*  Kopfgesteuerte Schleifen
	*  Fußgesteuerte Schleifen
	*  Unterbrechen von Wiederholungen
	*  Unterbrechen verschachtelter Schleifen
	*  Endlosschleifen 

Kopfgesteuerte Schleifen

Unsere bisherigen Programme hatten einen großen Nachteil: Sie erfüllten eine Aufgabe und nichts veränderte sich im Ablauf. Bisher ging es darum Ausdrücke und Variablen kennen zu lernen und zu sehen, wie man sie verwendet. Nun geht es einen Schritt weiter: Wir werden lernen, wie man Dinge mehrfach ma…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:memory&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Dynamische Speicherverwaltung</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:memory&amp;rev=1663869537</link>
        <description>Dynamische Speicherverwaltung

	*  Wozu braucht man dynamische Speicherverwaltung?
	*  Den benötigten Speicher herausfinden
	*  Speicher anfordern und freigeben
	*  Zugriff auf den angeforderten Speicher
	*  Ziel erreicht
	*  Mit der Standard-C-Lib ins Ziel</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:meta&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Strukturen verwalten</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:meta&amp;rev=1663869537</link>
        <description>Strukturen verwalten

Wieso muss man Strukturen verwalten?

Grundsätzlich habt ihr jetzt das Wissen von C, um aufwendige Programme zu schreiben. CounterStrike, Word, Firefox. Und vermutlich werdet ihr euch jetzt überfordert vorkommen, weil ihr zwar schon einiges wisst, aber noch über keine Erfahrungen verfügt, diese Dinge auch anzuwenden. Dies ist ein C-Tutorial, ihr lernt hier also die Programmiersprache C. Hier liegt die Betonung auf Sprache - nicht auf Sprechen. Man programmiert, in dem man I…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:params&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Parameterübergabe an die main-Funktion</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:params&amp;rev=1663869537</link>
        <description>Parameterübergabe an die main-Funktion

	*  Was sind Kommandozeilenparameter?
	*  Parameter für die main-Funktion
	*  Parameter auslesen
	*  Argumente verwenden

Was sind Kommandozeilenparamter?

Kommandozeilenparameter benutzen wir zum Beispiel, wenn wir den gcc-Compiler von der Konsole aufrufen:</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:pointer&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Zeiger</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:pointer&amp;rev=1663869537</link>
        <description>Zeiger

	*  Was ist ein Zeiger?
	*  Der Nullzeiger
	*  Der AddressOf-Operator
	*  Der Dereferenzierungs-Operator
	*  Verwandtschaft von Arrays und Zeigern
	*  Zeiger als Arrays verwenden
	*  Unterschiede zwischen Pointern und Arrays
	*  Zeiger bei Funktionen</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:project&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Projekte</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:project&amp;rev=1663869537</link>
        <description>Projekte

Was ist ein Projekt in der Softwareentwicklung?

Alles, was wir bisher geschrieben haben, waren natürlich auch Projekte, aber seien wir ehrlich - bisher war noch nichts dabei, was irgendjemand vom Hocker hätte reißen können. Der Quelltext der letzten Lektion hat etwa 200 Zeilen und wirklich viel kann er noch nicht.</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:quickops&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Optimierte Operatoren</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:quickops&amp;rev=1663869537</link>
        <description>Optimierte Operatoren

	*  Kombinierte Zuweisungsoperatoren
	*  Inkrement- und Dekrementoperatoren

Dieses Thema ist eigentlich grundlegend, aber ich habe es mir aufgespart, um die Geschichte mit den Ausdrücken nochmals zu wiederholen. 
Bisher kennen wir Zuweisungen in dieser Form:</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:recursion&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Rekursion und Optimierung</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:recursion&amp;rev=1663869537</link>
        <description>Rekursion und Optimierung

Was ist Rekursion?

Rekursion ist eigentlich kein Sprachfeature, sondern nur eine einfache Programmiertechnik. Wenn etwas rekursiv abläuft, dann bedeutet das, dass eine Funktion sich selbst ruft, bzw. eine Funktion „X“ andere Funktionen ruft, die dann wieder die Funktion</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:sidebar&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wiki</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:sidebar&amp;rev=1663869537</link>
        <description>Wiki

	*  Startseite
	*  C-Tutorial
	*  C++-Tutorial
	*  C-FAQ

Community

	*  Forum
	*  C/C++ Forum

Tutorial

Basics

	*  Erste Schritte
	*  Hello proggen.org
	*  Ausdrücke
	*  Werte vererarbeiten
	*  Entscheidungen
	*  Wiederholungen
	*  Funktionen

Fortgeschrittenes

	*  Arrays   
	*  C-Strings
	*  Zeiger
	*  Parameter
	*  Speicherverwaltung
	*  Attribute
	*  Strukturen
	*  Dateien
	*  Programmierstil
	*  Optimierte Ops

Expertenthemen

	*  Castings   
	*  Stacks   
	*  Strukturen organisier…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:stack&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Der Stack</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:stack&amp;rev=1663869537</link>
        <description>Der Stack

Erste Programme liefen einfach von Anfang bis Ende und fertig, es wurde Anweisung nach Anweisung befolgt, bis das Programm abgelaufen war. „Moderne“ Programmiersprachen - und dazu gehört auch bereits Assembler auf so etwa allem, was wir als Prozessor kennen - verwenden zur Ablaufsteuerung eine Datenstruktur. C ist sehr maschinennah und verwendet daher die gleichen Datenstruktur wie Assembler und damit der Prozessor: einen Stack. Die meisten Prozessoren besitzen ein eigenes Register fü…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:start&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>C-Tutorial</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:start&amp;rev=1663869537</link>
        <description>C-Tutorial

Ich gehe jetzt davon aus, dass euer Computer - egal, ob es ein Linuxsystem, ein Mac oder ein Windowsrechner ist - mit dem GCC Compiler ausgestattet ist.

Wir werden uns zunächst viel auf der Konsole bewegen. Keine Angst, das bedeutet nicht, dass dieses Tutorial für GUIs, 3D-Grafik oder beliebiges andere nicht geeignet wäre. Das Tutorial dient dazu, Dich auf den Weg zu bringen, um richtig programmieren zu lernen und Dich dann anschließend mit den Themen auseinander setzen zu können, d…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:struct&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Strukturen</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:struct&amp;rev=1663869537</link>
        <description>Strukturen

	*  Was sind Strukturen?
	*  Strukturen definieren
	*  Strukturen verwenden
	*  Strukturen übergeben
		*  Call-by-Value
		*  Call-by-Pointer

	*  Größe eines Datentyps
	*  Speicher für Strukturen anfordern
	*  Arrays von Strukturen
	*</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:style&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Programmierstil</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:style&amp;rev=1663869537</link>
        <description>Programmierstil

	*  Lesbarkeit
	*  Variablennamen
	*  eigene Datentypen verwenden
	*  Kommentare
	*  Klammern weglassen

Bei den kleinen Programmen, die wir bisher geschrieben haben, spielt es keine Rolle wie man sie schreibt - man wirft einen Blick drauf und hat das Programm soweit überblickt.
Die bisher geschriebenen Programme hatten vielleicht 20 Zeilen Quelltext. Wie sieht es beispielsweise mit Windows aus? Hier müssen 4 Millionen Zeilen Code überblickt werden - für Windows 3. WindowsXP wir…</description>
    </item>
    <item rdf:about="https://www.proggen.org/doku.php?id=c:tutorial:values&amp;rev=1663869537">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:58:57+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Werte verarbeiten</title>
        <link>https://www.proggen.org/doku.php?id=c:tutorial:values&amp;rev=1663869537</link>
        <description>Werte verarbeiten

	*  Werte und Ausdrücke auf den Bildschirm ausgeben
	*  Werte merken
	*  Wie merkt sich ein Computer Werte? 

Werte und Ausdrücke auf den Bildschirm ausgeben

Nachdem wir in der letzten Lektion eher theoretisch betrachtet haben, wie man Werte und Datentypen unterscheidet, wollen wir in dieser Lektion wieder etwas praktischer am Computer arbeiten.</description>
    </item>
</rdf:RDF>
