Einführung in C

Werbung
Einführung in C
EDV1 - 04C-Einführung
1
Literatur


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 - 04C-Einführung
2



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.“

EDV1 - 04C-Einführung
3
Ähnlichkeiten zwischen JAVA und C





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.
EDV1 - 04C-Einführung
4
Unterschiede zwischen JAVA und C






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.
EDV1 - 04C-Einführung
5
Erstes Beispiel - JAVA
public class hello
{
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]);
}
}
EDV1 - 04C-Einführung
6
Erstes Beispiel - C
int main (int argc, int* argv [])
{
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]);
}
EDV1 - 04C-Einführung
7
Primitive Datentypen






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)
EDV1 - 04C-Einführung
8
Datentypen unter Windows
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
EDV1 - 04C-Einführung
9
Unterschiede zu JAVA




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.
EDV1 - 04C-Einführung
10
Logische Ausdrücke



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 { ... }
EDV1 - 04C-Einführung
11
Verzweigungen, Zyklen

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++) ...
EDV1 - 04C-Einführung
12
Herunterladen