Algorithmen und Datenstrukturen Zeiger und Strukturen. M. Herpers, Y. Jung, P. Klingebiel
|
|
- Helga Kopp
- vor 5 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Zeiger und Strukturen M. Herpers, Y. Jung, P. Klingebiel 1
2 Lernziele Zeiger in C kennen und anwenden können Wissen, wie der Speicherplatz in C verwaltet wird Den Zusammenhang zwischen Arrays und Zeigern kennen und anwenden können Bitmanipulationen und ihre Anwendung kennen C-Strukturen (Records) kennen und anwenden können 2
3 ZEIGER (POINTER) 3
4 Wo steht was im Speicher? #include <stdio.h> int main(int argc, char *argv[]) { int a = 10; int b = 20; return 0; } 4
5 Wo steht was im Speicher? Ein ganz einfaches Programm! Wie sieht es im Speicher aus? 0022EE00 10 a 0022FFAB 20 b Speicheradressen Variablennamen Speicherinhalte 5
6 Wo steht was im Speicher? #include <stdio.h> int main(int argc, char *argv[]) { int a = 10; int b = 20; int *azeiger = &a; /* Pointer azeiger */ int *bzeiger = &b; /* Pointer bzeiger */ return 0; } 6
7 Wo steht was im Speicher? Wie sieht es im Speicher aus? bzeiger 0022FFAB &a 0022EE00 10 a azeiger 0022EE00 &b 0022FFAB 20 b Adressen 7
8 Zeiger bzw. Pointer Pointer ist Variable, die Speicheradresse hält Zugreifen auf Daten an dieser Speicheradresse heißt Dereferenzieren eines Pointers In Funktionen sind Variablen aus aufrufender Funktion über Pointer veränderbar: Call-by-Reference 8
9 Pointer Pointer hält Adresse einer Speicherzelle Speicheradresse ptr 0x7b03a928 j int main() { int j = 12; } int *ptr = &j; printf("%d\n", *ptr); j = 24; printf("%d\n", *ptr); printf("%p\n", ptr); Was wird ausgegeben? 9
10 Pointer Null-Pointer kann nicht dereferenziert werden #include <stdio.h> ptr j 12 int main() { int j = 12; int *ptr = NULL; } printf("%d\n", *ptr); return 0; // crash! Segmentation violation (core dumped) 10
11 Zeiger-Beispiel: Einzelschrittansicht Zugriff auf Variable mit Pointer 11
12 Ausgabe Werte und Adressen int main(int argc, char *argv[]) { int a = 10; int *azeiger = &a; int b = 20; int *bzeiger = &b; printf("%d \t %d\n", *azeiger, *bzeiger); // Werte // Speicheradressen, wo die Werte stehen printf("%p \t %p\n", azeiger, bzeiger); // Adresse der Adressen (d.h. der Pointer) printf("%p \t %p\n", &azeiger, &bzeiger); } 12
13 Adressen Werte und Pointer Konkret: Wie sieht es im Speicher aus? Beispielausgabe: 0022FF FF6C bzeiger 0022FF6C 20 b 0022FF FF74 azeiger 0022FF74 10 a 13
14 Zeiger auf void void* Bezeichnet Zeiger, der jeden anderen Zeiger ersetzen kann, ohne dass Information verloren geht Jeder Zeiger kann in void* verwandelt werden Platzhalter für Zeiger Bsp. (Type Cast): int a = 11; char *ca = NULL; void *ptr; ptr = (void*)&a; ptr = (void*)ca; 14
15 Speicherverwaltung in C Geschieht mit Hilfe von Bibliotheksfunktionen #include <stdlib.h> Speicherblock anfordern mit Funktion malloc() void* malloc (size_t size); Ziemlich low-level, benötigt nur gewünschte Größe des (zusammenhängenden) Speicherbereichs in Byte Bsp. dynamisch Platz für 10 Short-Werte allozieren: unsigned short *ptr = (unsigned short*)malloc(10 * sizeof(unsigned short)); Kein Unterschied zwischen Einzelwerten und Arrays! Speicherblock freigeben mit Funktion free() void free(void *ptr) 15
16 Speicherverwaltung in C Speicher anfordern (hier für einen Integer) int *ptr = (int*)malloc(sizeof(int)); if (ptr!= NULL) { *ptr = 1024; } else { printf("kein Speicher verfuegbar!\n"); } Speicher freigeben if (ptr!= NULL) { free(ptr); ptr = NULL; } ptr
17 Speicherverwaltung in C int *intptr; intptr = (int*)malloc(sizeof(int)); *intptr = 4711; Zeiger deklarieren Speicher anfordern Wert setzen *intptr intptr x0050 free(intptr); int otherval = 5; intptr = &otherval; Speicher freigeben intptr umsetzen auf andere Speicheradresse *intptr intptr 5 0x0054 otherval &otherval 17
18 Malloc und free malloc und free werden benutzt, um Speicherplatz dynamisch zu allokieren/ deallokieren Dynamischer Speicherplatz (heap) ist ein freier Speicherplatzereich, in dem die Lebenszeit von Objekten vom Programm bestimmt wird. malloc allokiert so viel Speicher, wie angefragt, und gibt die Adresse zu dem bereich zurück Die Allokation mit malloc kann misslingen. Dann wird ein NULL-Pointer zurückgegeben Nach einer Speicherplatz-Allokation, sollte immer geprüft werden, ob diese gelungen ist. Dereferenzierung von Pointern vor malloc oder nach free führt zum Programmcrash. Speicherplatz ist nicht unbegrenzt! Alle Objekte, die mit malloc allokiert wurden, müssen mit free wieder frei gegeben warden, wenn sie nicht mehr gebraucht werden, andernfalls kann der Speicherplatz nicht wieder verwendet werden (memory leak) An free wird der Pointer, der malloc initialitisiert wurde, als Parameter übergeben 18
19 Stack vs. Heap Heap-Allokation int *intarray = (int*)malloc(3 * sizeof(int)); intarray[0] = 6837;... free(intarray); Stack-Allokation int intarray[3]; intarray[0] = 6837; 19
20 Pointer und Arrays Referenz auf mehrere zusammenhängende Speicherzellen (dynamisch allozierte Felder) #include <stdlib.h> int main() { int *ptr = (int*)malloc(3 * sizeof(int)); ptr[0] = 10; ptr[1] = 11; ptr[2] = 12 free(ptr); ptr return 0; }
21 Pointer und Arrays Felder sind in C intern implementiert als konstante Zeiger auf zusammenhängende Speicherblöcke X[0] 1 X[1] X[2] X[3] X[4] int main() { int j, x[5]; for (j = 0; j < 5; j++) x[j] = 0; x x+1 x+3 } int *ptr = x; * ptr = 1; // x[0] = 1 *(ptr+1) = 2; // x[1] = 2 *(ptr+3) = 5; // x[3] = 5 21
22 Pointer und Arrays Pointervariablen enthalten bzw. zeigen auf Adressen Ein Feldname repräsentiert Anfangsadresse des Feldes, ist somit ein unveränderlicher Pointer Wert einer Array-Variablen ist immer Adresse des ersten Array-Elements, also eine Adresskonstante Bei Feldern damit immer nur Call-by-Reference Übergabe Bsp.: int myarrayfunc(int arr[], int num) { } Pointerarithmetik Nur Addition bzw. Subtraktion mit Integer (z.b. p++) Ergebnis typabhängig: Größe eines Speicherobjekts des geg. Datentyps wird auf Adresse addiert n Elemente entsprechen n * sizeof(<datentyp>) Byte 22
23 Zeiger auf Zeiger void** Platzhalter für beliebigen Zeiger auf beliebigen Zeiger (beliebig wegen void) **ptr hingegen: Dereferenziert Zeiger, der auf einen Zeiger zeigt Und dereferenziert auch diesen zweiten Zeiger Findet also zur eigentlichen Information Link zu Pointer-Tutorial: Pointer notwendig für Eingaben: scanf("%d", &i); Pointer notwendig als Funktionsparameter (Call-by-Ref.) 23
24 ZEICHENKETTEN IN C 24
25 Zeichenketten Zeichenketten (bzw. Strings) sind in C char-arrays (sog. C-Strings ) C kennt keine speziellen Operationen auf Zeichenketten Es gibt nur Operationen auf einzelnen Zeichen (bzw. Arrays von Zeichen) Zeichenketten werden in der Regel mit Bibliotheksfunktionen bearbeitet: #include <string.h> 25
26 Strings Ein String in C ist ein Array von Characters char mystring[20]; Strings werden terminiert mit Character '\0' mystring[0] = 'H'; mystring[1] = 'i'; mystring[2] = '\0'; printf("%s", mystring); Was wird hier ausgegeben? 26
27 Zeichenketten Unterschied Pointer Array String: Pointer belegt nur eine einzige Speicheradresse Array oder String dagegen belegt viele Adressen Nur Bezeichner ist von Natur aus ein Zeiger Bei Vereinbarung wird für Array oder String Platz passender Länge reserviert Wie Arrays sind Zeichenketten (da Arrays von Zeichen) in C kein eigener Datentyp 27
28 Zeichenketten #include <stdio.h> int main() { char msg[10] = "Bonjour"; char *p; p = "Huhu"; // Array mit 10 Zeichen // Zeiger auf Zeichen // Konstanter String // Kurzform für msg2 = {'H','e','l','l','o','\0'} char msg2[] = "Hello"; // Compiler ermittelt Laenge printf("%s", "Bonjour"); } // Stringausgabe 28
29 Wie sieht der Speicher nachher aus? p = msg; p[0] = 'H'; p[1] = 'i'; p[2] = '\0'; msg (array) r 36 u 32 o 28 j 24 \0 n 20 o i 16 H B p 4 29
30 Zeichenketten Eine Zeichenkette steht immer auf gleichem Speicherplatz Angabe in Anführungszeichen oder Char-Feld char name[6] = {'H', 'o', 'r', 's', 't', '\0'}; /* '\0' end of string */ printf("%s", name); /* print until '\0' */ Sie kann verändert oder kopiert, aber in C nicht verschoben werden Jede Zeichenkette wird mit \0 abgeschlossen 30
31 Zeichenketten Bsp.: Einlesen einer Zeichenkette int tag, jahr; char monat[16]; scanf("%d %s %d", &tag, monat, &jahr); /* Feldname ist schon Referenz */ Dezember\0 31
32 Zeichenketten kopieren Wenn s und t Zeiger auf Zeichenketten sind: Kopieren einer Zeichenkette NICHT mit: s = t; Setzt nur Zeiger s auf Zeiger t, kopiert nur Zeiger Gilt analog für Felder allgemein 32
33 Zeichenketten kopieren Kopieren einer Zeichenkette z.b. von t nach s: void strcopy(char *s, char *t){ int i = 0; } /* durchlaeuft alle Zeichen */ while (t[i]!= '\0'){ s[i] = t[i]; i++; } /* '\0' noch nicht kopiert */ s[i] = t[i]; 33
34 Zeichenketten kopieren Kopieren einer Zeichenkette z.b. von t nach s: void strcopy(char *s, char *t) { int i = 0; } /* durchlaeuft alle Zeichen */ while((s[i] = t[i])!= '\0') /* Klammer wichtig */ i++; 34
35 Zeichenketten kopieren Kopieren einer Zeichenkette z.b. von t nach s: void strcopy(char *s, char *t) { while((*s = *t)!= '\0'){ /* weist zuerst zu, prueft dann */ s++; /* erhoeht spaeter */ t++; } } 35
36 Zeichenketten kopieren Kopieren einer Zeichenkette z.b. von t nach s: void strcopy(char *s, char *t) { while( (*s++ = *t++) ) ; /* weist zuerst zu, prueft dann, erhoeht nach Ende der Anweisung */ } [Kernighan] 36
37 Zeichenketten dynamisch Erstellen veränderlich langer Zeichenketten in C char* createnewstring(const char* cs) { /* Hilfszeiger, +1 wegen '\0' */ char *newstrg = (char*)malloc(strlen(cs)+1); } if (newstrg!= NULL){ strcpy(newstrg, cs); return newstrg; } return NULL; 37
38 Zeichenketten Bibliotheksfunktionen Zahlreiche Bibliotheksfunktionen in <string.h>, z.b.: char* strcpy(s,ct) char* strcat(s,ct) int strcmp(cs,ct) size_t strlen(cs) Kopiert Zeichenkette aus ct in s, liefert Zeiger auf s hängt Zeichenkette aus ct an s an, liefert Zeiger auf s Vergleicht Zeichenkette in cs mit Zeichenkette in ct, liefert < 0, wenn cs kleiner ist, 0, wenn beide gleich, sonst > 0 Liefert Länge von cs ohne \0 s hat den Typ char*, cs und ct den Typ const char* (werden nicht geändert) 38
39 Zeichenketten Beispiele für strcmp() bzw. strncmp() strcmp("a", "A") ist 0 strcmp("a", "B") ist -1 strcmp("b", "A") ist 1 Auf 4 erste Zeichen beschränkt: strncmp("fassade", "Fass", 4) ist 0 Achtung: strcmp("z", "a") liefert -1, da ASCII-Werte verglichen werden (genaue Rückgabewerte compilerabhängig) Stringlänge ermitteln mit strlen() char str[8] = "Hello"; Was gibt strlen(str) zurück? 5, 6 oder 8??? 39
40 Arrays mit Zeigern Ermöglicht bequeme Speicherung von C-Strings in Array Feld speichert nicht C-Strings selbst, sondern Zeiger auf Strings, die irgendwo anders im Speicher liegen Beispiel const char* suit[4] = { "Hearts", "Diamonds", "Clubs", "Spades" }; Jedes Element von suit zeigt auf einen char* (C-String) Array suit hat feste Größe (4 Zeiger mit je 4 Byte), aber Strings können hier beliebig groß sein Anmerkung: suit[i] i=0..3 kann wg. const nicht verändert werden! 40
41 Kommandozeile (Stringeingabe) Hauptprogramm kann Argumente haben int main(int argc, char *argv[]) argument count: Anzahl der Argumente des Programms bzw. Anzahl der Char-Zeiger in argv[] argument vector: Zeiger auf Vektor/Feld von Zeigern auf Zeichenfolgen, welche die Argumente enthalten Vgl. Java: public static void main( String[] args ) { } Programm kann so mit Anfangswerten versehen werden Zugriff mit z.b.: argv[i] Programmname steht in argv[0] 41
42 Kommandozeile (Stringeingabe) Sinn: Bei Aufruf von Kommandozeile aus kann Programm mit Parametern versorgt werden Ermöglicht so z.b. Batch-Verarbeitung 42
43 BITMANIPULATIONEN 43
44 Bitmanipulationen Logische Operationen zur Verarbeitung einzelner Bits in einem Speicherwort Zur Code-Beschleunigung in der Graphik (z.b. Flags in Bitfolgen), für En- und Decoding, Ansprechen / Steuern von Geräten usw. Beispiele: Motor ein/motor aus Pumpe ein/aus Heizung ein/aus Gerät eingeschaltet Drucker hat kein Papier Kopierer hat Papierstau 44
45 Bitmanipulationen Anzuwenden auf ganzzahlige Variable (z.b. unsigned int) Bitweises UND: a & b Bitweises ODER: a b Bitweises XOR: a ^ b (Exklusiv-ODER) a b a ^ b Bitweises Komplement: ~a (Einerkomplement) Linksshift: a << 2 Rechtsshift: a >> 2 Oft werden Variablen in hexadezimaler Form angegeben 45
46 Bitmanipulationen Beispiel: << Linksshift Verschiebt Daten um angeg. Anzahl von Bits nach links Bits, die links herausfallen, verschwinden Rechts wird mit Nullen aufgefüllt Bsp.: i <<= 4; // Identisch zu i *= 16; 46
47 Bitmanipulationen Schiebeoperationen >> >> 5 ergibt (rechts schieben) << (links schieben) (unsigned nutzen, Ergebnis abhängig von Vorzeichen) << 5 ergibt 47
48 Bitmanipulationen Die einzelnen Operationen (bitweise) & und & ergibt oder ergibt 48
49 Bitmanipulationen Die einzelnen Operationen (bitweise) ^ exklusiv-oder ^ ergibt ~ negieren ~ ergibt 49
50 Bitmanipulationen Anwendung für schnelle Operationen Feststellung, ob ein Wert gerade oder ungerade ist Vertauschen von Werten von Variablen Gerätesteuerung Computergraphik 50
51 Gerätesteuerung Lichter im Haus unsigned char licht; Schlafen1 Bad WC Gäste-WC Küche Schlafen2 Flur Wohnzimmer Wie können alle Lichter im Haus außer dem Flurlicht (soll Wert nicht verändern) mit einem Befehl ausgeschaltet werden? 51
52 Gerätesteuerung Lösung: C-Befehl: licht licht 52
53 Computergraphik Bit Block Transfers sind Operationen, bei der Pixelblock bitweise mit anderem kombiniert wird Z.B. XOR für sog. Rubberband oder Mauscursor Zweimal XOR stellt alten Wert wieder her Zeichenmodus Bsp.: Logische Verknüpfung mit XOR Source-Pixel: Destination-Pixel: Ergebnis:
54 STRUKTUREN IN C 54
55 Verbunddatentypen Mehrere, ggfs. verschiedene, Datentypen werden zu einer (Daten-) Struktur zusammengefasst Benutzername Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod Kontakte struct Messwerte { char name[42]; float hoehe; float breite; int index; } mess1, *mess2; Bild Bsp.: Profildaten in sozialem Netz Zugriff über Punkt-Operator, z.b.: mess1.hoehe Bei Pointern: mess2->hoehe 55
56 Aufbau von C-Structs Gruppen von Variablen Öffentliche Klassen ohne Methoden Können ineinander geschachtelt sein a) struct Name { /* Anweisungen */ } instanzname; b) struct Name { }; /* Anweisungen */ 56
57 Aufbau von C-Structs Definition einer Variablen mit Strukturtyp: struct Name instanzname; Definition eines neuen Struct-Datentyps: typedef struct Name NewType; Dient zur Verwaltung von Datensätzen Wird manchmal auch als Record bezeichnet 57
58 Beispiele für C-Structs Mögliche Datenstruktur für Typen Punkt und Rechteck: struct Point { /* Punkt auf Bildschirm */ int x; int y; }; struct Point p = { 47, 11 }; /* Init. */ struct Rectangle { /* Rechteck */ struct Point p1; struct Point p2; }; typedef struct Rectangle Rect; 58
59 Beispiele für C-Structs struct Birthday { int month, day, year; }; struct Person { char name[80]; float weight; float height; struct { /* embedded structure */ int month; int day; int year; } birth; }; 59
60 Beispiele für C-Structs struct Person you; Zugriff: you.birth.year = 1995; struct Person group[80]; strcpy(group[0].name, "Chantal"); group[0].height = 1.72f; group[0].birth.year = 1996;... Beachte: bei Pointern Pfeil- statt Punktnotation struct Birthday *d = malloc(sizeof(struct Birthday)); d->year = 1997; 60
61 Zuweisung von Strukturen Strukturen können Strukturen gleichen Typs zugewiesen, also einfach kopiert, werden: struct Point { /* Punkt auf Bildschirm */ int x; int y; } p1, p2;... p1.x = 47; p1.y = 11; p2 = p1; /* Werte werden kopiert */ Beide haben gleichen Inhalt, aber verschiedene Stellen im Speicher, anders als Klassen in Java! 61
62 Zusammenfassung Deklarieren eines Structs struct [optional name] { <type> field1;... } [instance list]; Beispiele: struct Foo { int field1; char field2; } foo, *foo_ptr; struct Foo foo2; struct List { int data; struct List *next; }; Zugriff auf Struct-Felder foo.field1; greift auffield1 der Instanz foo von struct Foo zu Pointer-Syntax und Structs * hat weniger Vorrang als. : *foo_ptr.field1; bedeutet *(foo_ptr.field1); Was vielleicht nicht kompiliert Zugriff auf ein Feld in einem Struct - Pointer: (*foo_ptr).field1; foo_ptr->field1; 62
63 Exkurs: Aufzählungsdatentyp Ein enum ist ein Aufzählungstyp mit begrenztem Wertebereich. Alle erlaubten Werte werden festgelegt. enum PrimaryColors { RED = 0, GREEN, BLUE } c; c = GREEN; Optional: Name des enum Per Default, erhält die erste Option den Wert 0 Jeder Option können beliebige Integerwerte zugewiesen werden Hintereinander liegende Optionen bekommen den Wert des Vorgängers plus 1 63
64 Exkurs: Union Eine Union erlaubt die Nutzung eines Speicherbereichs für unterschiedliche Felder union Argument { char charval; int intval; float floatval; }; Optional: Name der Union Eine Änderung von intval ändert floatval und charval! Wird für constrained-type containers benutzt Üblicherweise zusammen mit einem enum, das festlegt, welches Feld gültig ist 64
65 Exkurs: Speicherung von struct und union union-elemente teilen sich Speicherplatz Speichern der Elemente in union nicht nacheinander, sondern übereinander 65
66 Auswertungsreihenfolge /w/c/language/operator_pr ecedence 66
67 Lernziele Zeiger in C kennen und anwenden können Wissen, wie der Speicherplatz in C verwaltet wird Den Zusammenhang zwischen Arrays und Zeigern kennen und anwenden können Bitmanipulationen und ihre Anwendung kennen C-Strukturen (Records) kennen und anwenden können 67
68 FRAGEN? 68
Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Bisjetzt Beispiel Ranglistenprogramm für Sportveranstaltungen Besser - genaue Anzahl Teilnehmer
MehrTeil 5: Zeiger, Felder, Zeichenketten Gliederung
Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik
MehrTeil 5: Felder, Zeiger, Zeigerarithmetik Gliederung
Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder
MehrC-Kurs 2010 Pointer. 16. September v2.7.3
C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next
MehrArrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrEinführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse
MehrKontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer
Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;
MehrInhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern
MehrZeiger (engl. Pointer)
Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der
MehrProgrammieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff
Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40
MehrF Zeiger, Felder und Strukturen in C
F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts
MehrInformatik. Pointer (Dynamisch) Vorlesung. 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1
Informatik Vorlesung 08 Pointer (Dynamisch) 17. Dezember 2018 SoSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Pointer (Zeiger) Dynam. Speicher Bisher: Speicherbedarf muss
MehrC- Kurs 08 Zeiger. Dipl.- Inf. Jörn Hoffmann leipzig.de. Universität Leipzig Ins?tut für Informa?k Technische Informa?
C- Kurs 08 Dipl.- Inf. Jörn Hoffmann jhoffmann@informa?k.uni- leipzig.de Universität Leipzig Ins?tut für Informa?k Technische Informa?k Überblick Datentyp zur Verwaltung von Adressen (auf Speicherplätze)
MehrPraxis der Programmierung
Arrays, Pointer, Parameterbergabe Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vectoren) 2 Arrays: Motivation Gegeben:
Mehreinlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrTeil 6: Strukturen und Unionen Gliederung
Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Typdefinitionen
MehrEinführung Pointer. C-Kurs 2013, 2. Vorlesung. Nico Andy
Einführung Pointer C-Kurs 2013, 2. Vorlesung Nico nico@freitagsrunde.org Andy andrew@freitagsrunde.org http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons
MehrGrundlagen der Programmiersprache C für Studierende der Naturwissenschaften
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 7: Matrizen, Vektoren und dynamische Speicherverwaltung Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen
MehrAlgorithmen und Datenstrukturen. Funktionen in C. float a = sin(alpha); M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Funktionen in C a sin( ) float a = sin(alpha); M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Formatierte Ein- und Ausgabe (vertieft) Verwendung von Funktionen in C kennen
MehrINE1 Arrays, Zeiger, Datenstrukturen
INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen
MehrProbeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Mehr6. Zeiger Allgemeines Definition eines Zeigers
6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.
MehrBereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung
Kompaktkurs C++ Themen C 1 Bereits behandelt: Einfache Datentypen / Variablen Schleifen und Verzweigungen Funktionen Heute: Felder, Zeiger, Referenzen Freispeicherverwaltung Zeichenketten Kommandozeilenargumente
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrC-Kurs 2011: Arrays, Strings, Pointer
C-Kurs 2011: Arrays, Strings, Pointer Sebastian@Pipping.org 15. September 2011 v3.0.33 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. Ohne Pointer geht nichts. 2 Pointer
MehrPraxis der Programmierung
Zeichenketten (Strings), Ein- und Ausgabe Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Zeichenketten (Strings)
MehrTyp : void* aktuelle Parameter Pointer von beliebigem Typ
2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben
MehrU8 7. Übung U8 7. Übung
U8 7. Übung U8 7. Übung Dynamische Speicherverwaltung Generisches Sortieren Aufgabe 7 U8.1 U8-1 Dynamische Speicherverwaltung U8-1 Dynamische Speicherverwaltung Erzeugen von Feldern der Länge n: mittels:
MehrC-Programmierung: Ausdrücke und Operatoren#Division.2F
C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF
MehrBetriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/
MehrPhysische Datenstrukturen
Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Einführung in C Bieniusa Software Entwicklung 1 2/ 50 Warum C in SE1? Meist verwendete Sprache weltweit Viele wichtige
MehrPraxis der Programmierung
Arrays, Pointerarithmetik, Konstanten, Makros Institut für Informatik und Computational Science Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Arrays (Felder/Vektoren) 2 Arrays: Motivation
MehrK Ergänzungen zur Einführung in C
K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0
Mehr8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
MehrZeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
MehrTeil 6: Strukturen und Unionen Gliederung
Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Ursprung in Pascal als Datentyp record, Verbunddatentyp Strukturtyp
MehrBetriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.
Betriebssysteme Tafelübung 4. Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss217/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrBetriebssysteme. Agenda. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.
Betriebssysteme Tafelübung 4. Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss217/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrEinführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher
Einführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher Arvid Terzibaschian 1 Zusammengesetzte Datentypen 2 Wozu zusammengesetzte Datentypen? Anforderung: Sie sollen ein Kundenverzeichnis
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrZeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Inhaltsverzeichnis 1 Allgemeines zur Speichernutzung 2 2 Ziel und Nutzen 2 3 Anwendung in C 2 3.1 malloc............................... 3 3.2 calloc...............................
MehrOperatoren in C. Gastvorlesung Andreas Textor
Operatoren in C Gastvorlesung - 11.01.10 Andreas Textor andreas.textor@hs-rm.de Terminologie Operand 4 + 2 Operand Operator Unterscheidung nach Anzahl Operanden Unäre, Binäre und Ternäre Operatoren Z.B.:!x;
MehrC/C++-Programmierung
1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung
MehrZeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
MehrInhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15
Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrC++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
MehrVorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
MehrPointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.
Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 3.2 Auswahl an Stringfunktionen W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu Allgemeines (1) Die ANSI-Norm definiert auch nützliche Funktionen zur ASCIIZ-Stringbearbeitung.
MehrProgrammierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
MehrC-Pointer (Zeiger, Adressen) vs. C++ Referenzen
C-Pointer (Zeiger, Adressen) vs. C++ Referenzen Der Pointer (C/C++): In C/C++ ist der Pointer ein eigener Datentyp, der auf Variablen/Objekte zeigen kann. Indem man den Pointer dereferenziert, gewinnt
MehrCrashkurs C++ - Teil 1
Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik
Mehr6. Bearbeitung von Strings in C Bearbeitung von Strings in C
Bearbeitung von Strings in C 6-1 Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char [ ] ; Wie die Daten (Zeichenfolge)
MehrTafelübung zu BS 4. Speicherverwaltung
Tafelübung zu BS 4. Speicherverwaltung Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2015/bs/
MehrÜbersicht. Speichertypen. Speicherverwaltung und -nutzung. Programmieren in C
Übersicht Speichertypen Speicherverwaltung und -nutzung Speichertypen Beim Laden eines Programms in den Speicher (Programmausführung) kommen 3 verschiedene Speicherbereiche zum Einsatz: Text Segment (Code
MehrGrundlagen und Konzepte von C Datenstrukturen
Grundlagen und Konzepte von C Datenstrukturen Ausarbeitung von Andreas Gadelmaier Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik,
Mehr4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 3 Typen und Speicherverwaltung Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Literatur (2) Kernighan and Ritchie, The
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrVorlesung 6: Operatoren, Logische Ausdrücke
Vorlesung 6: Operatoren, Logische Ausdrücke Inhalt Organisatorisches Offene Übungen Operatoren Logische Ausdrücke Dr. J. Raimann 1 Offene Übungen (durch Tutoren betreut) montags 1. und 2. Block (8.15 Uhr
MehrRO-Tutorien 17 und 18
RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 4: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen
MehrDynamischer Speicher
Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrEinführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
MehrPraxis der Programmierung
Zusammengesetzte Datentypen, dynamische Speicherverwaltung Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Zusammengesetzte
MehrElementare Datentypen in C++
Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrProgrammieren in C SS Vorlesung 4, Dienstag 14. Mai (Strings, Zeiger, Allokation, Strukturen)
Programmieren in C SS 2019 Vorlesung 4, Dienstag 14. Mai 2019 (Strings, Zeiger, Allokation, Strukturen) Prof. Dr. Peter Thiemann Professur für Programmiersprachen Institut für Informatik Universität Freiburg
MehrDatenstrukturen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert
Datenstrukturen InE1 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Rangliste Winti-Marathon benötigte Information pro Teilnehmer Variable Typ Daten Name String Vorname
MehrOrganisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben
Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe
MehrBetriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.
Betriebssysteme Tafelübung 4. Speicherverwaltung https://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de https://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware
MehrProgrammieren in Java
Ein Projekt 2 Wiederholung: new-operator Werte nicht-primitiver Datentypen müssen mit new erzeugt werden Es gibt keine Möglichkeit primitive Daten mit new zu erzeugen Beispiele int[] myarray = new int[]
MehrStrings (Zeichenketten)
Strings (Zeichenketten) INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird
MehrInformatik. Wiederholung Felder (Arrays), string. Vorlesung
Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include
MehrInformatik. Strukturen und Aufzählungstypen. Vorlesung
Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in
MehrArrays,Strings&Pointer in C/C++
Arrays,Strings&Pointer in C/C++ Vortrag Mathias Reich Am 21.5.2002 Pointer Da zur Zeit der Compelierung des Programms nicht immer der Umfang der zu bearbeitenden Daten feststeht muss man sich - in manchen
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrZeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt
Zeichenketten (1) Literale Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt "Hallo Welt" Mehrere solcher Literale gelten als eine Zeichenkette, wenn sie nur durch Whitespaces (Leerzeichen,
MehrGrundlagen der Programmierung in C++ Arrays und Strings, Teil 1
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrVariablen und Parameter
D3kjd3Di38lk323nnm Variablen und Parameter Eine Variable repräsentiert einen Speicherbereich, der einen veränderbaren Wert enthält. Eine Variable kann eine lokale Variable, ein Parameter (value, ref oder
Mehr