Einführung in C

Werbung
Einführung in C
EDV1 - 03C-Einführung
Literatur
EDV1 - 03C-Einführung
2
• Helmut Erlenkötter
C Programmieren von Anfang an
Rowohlt Taschenbuch Verlag
ISBN 3-499-60074-9
19,90 DM
http://www.erlenkoetter.de
• Walter Herglotz
Das Einsteigerseminar C++
bhv Verlags GmbH
ISBN 3-89360-622-X
19,80 DM
EDV1 - 03C-Einführung
3
• C ist genau so wie JAVA
- nur ein wenig anders.
• JAVA ist von ehemaligen C-Entwicklern mit dem Ziel entwickelt
worden, eine strukturiertere und sicherere Sprache als C zu
schaffen.
• Sinngemäßes Zitat:
„Von vielen (vorrangig Pascal-) Programmierern wird gesagt die,
Sprache C sei chaotisch und unstrukturiert. Das ist auch wahr.
Aber! Dadurch werden die Programmierer dazu gezwungen,
ordentlich und strukturiert zu programmieren.“

Ähnlichkeiten zwischen JAVA und C
EDV1 - 03C-Einführung
4
• Ausdrücke sind sehr ähnlich, gleiche Operatoren mit gleicher
Wirkung, in C gibt es zusätzliche Operatoren
• Der Gebrauch von Klammern und Trennzeichen ist sehr ähnlich.
• /* ... */ Kommentare
• Kompliziertere Objekte (Felder, Strukturen, Objekte in C++)
werden über Referenzen (Zeiger, Pointer) adressiert.
• Parameter werden „by value“ übergeben.
Unterschiede zwischen JAVA und C
EDV1 - 03C-Einführung
5
•
•
•
•
•
Ein- und Ausgabe ist völlig anders.
Zeiger müssen explizit genutzt werde.
Dynamische Speicherverwaltung muss selbst realisiert werden.
C beinhaltet eine Präprozessor.
Der C-Compiler erzeugt ausführbare Programme, d.h. sie sind
nicht portabel. Hardware-, Betriebssystem- oder
Compileränderungen erfordern mindestens die Neuübersetzung
des Programms, ggf. sogar Neuentwicklungen.
• C enthält keine Standardbibliotheken für komplexe
Funktionalitäten, wie z.B.: GUIs, Datenbankzugriffe,
Graphikfunktionen u.s.w. Diese Funktionalitäten werden durch
zusätzliche, oft kommerzielle Pakete realisiert. Diese sind selten
Hardware- und Betriebssystemunabhängig.
Erstes Beispiel - JAVA
public class hello
{
EDV1 - 03C-Einführung
public static void main (String args [])
{
System.out.println("Hello, world!\nDas ist"+
" unser erstes JAVA-Programm.\nAnzahl der"+
"Parameter : "+args.length);
for (int i=0; i<args.length; i++)
System.out.println("Parameter["+i+
"] = "+args[i]);
}
}
6
Erstes Beispiel - C
int main (int argc, int* argv [])
{
EDV1 - 03C-Einführung
int i;
printf("Hello, world!\nDas ist unser erstes"
"C-Programm.\nAnzahl der Parameter : %i\n",
argc);
for (i=0; i<argc; i++)
printf("Parameter[%i] = %s\n",i,argv[i]);
}
7
Primitive Datentypen
EDV1 - 03C-Einführung
8
•
•
•
•
•
char : ein byte langes Zeichen
int : einfach genaue Festkommazahl
float : einfach genaue Gleitkommazahl
double : doppelt genaue Gleitkommazahl
void : kein Wert, 0 byte lang
• Modifikatoren:
– signed : vorzeichenbehaftet (Standard)
– unsigned : vorzeichenfrei
– long : lange Version des Typs
– short : kurze Version des Typs (Standard)
Datentypen unter Windows
EDV1 - 03C-Einführung
9
Typ
Bytes
Minimalwert
Maximalwert
char
1
-128
127
unsigned char
1
0
255
short int
2
-32768
32767
unsigned short int
2
0
65535
int
4
-2147483648
2147483647
unsigned int
4
0
4294967295
float
4
1.17549E-38
3.40282E+38
double
8
2.22507E-308
1.79769E+308
Unterschiede zu JAVA
EDV1 - 03C-Einführung
10
• Die Länge und interne Darstellung der Datentypen hängt vom
Compiler, vom Prozessor, vom Betriebssystem und von
Einstellungen ab!
• Alle Typen sind standardmäßig vorzeichenbehaftet auch char!
• Es existiert kein boolean-Typ.
• Variablen müssen immer am Anfang einer Prozedur (Methode)
vereinbart werden. In C++ können Variable auch im
Programmtext vereinbart werden.
Logische Ausdrücke
EDV1 - 03C-Einführung
11
• Es existiert kein boolean-Typ!
 logische Ausdrücke ergeben int-Wert.
0 : false
!= 0 : true
• Für alle Werte gilt: Null wird als false und alle anderen Werte
werden als true interpretiert.
• Alle Ausdrücke, auch Zuweisungen liefern einen Wert (wie in
JAVA).
 Alle Ausdrücke sind in Vergleichen zulässig. Z.B.:
– if (i==1) { ... } else { ... }
– if (i =1) { ... } else { ... }
Verzweigungen, Zyklen
EDV1 - 03C-Einführung
12
• Die Verwendung von folgender Konstrukte ist genau so wie in
JAVA:
– if – then – else
– for
– while
– do-while
– switch
• Achtung! Es dürfen keine Variablen in der for – Anweisung
definiert werden. Z.B.:
int i;
...
for (i=0; i<n; i++) ...
Herunterladen