Pointer. Variablen. Pointer. Ein elementares Beispiel. Pointer in C
|
|
|
- Frida Amsel
- vor 8 Jahren
- Abrufe
Transkript
1 Variablen Pointer Variable vs. Pointer Dereferenzieren Address-of Operator & Dereference Operarot * Call by Reference Variable = symbolischer Name für Speicherbereich + Information, wie Speicherbereich interpretiert werden muss (Datentyp laut Deklaration) Compiler übersetzt Namen in Referenz auf Speicherbereich und merkt sich, wie dieser interpretiert werden muss Pointer Pointer = (im wesentlichen) Variable, die Adresse eines Speicherbereichs enthält Dereferenzieren = Zugriff auf den Inhalt eines Speicherbereichs mittels Pointer Beim Dereferenzieren muss Compiler wissen, welcher Var.typ im gegebenen Speicherbereich liegt, d.h. wie Speicherbereich interpretiert werden muss Pointer in C Pointer & Variablen sind in C eng verknüpft: var Variable &var zugehöriger Pointer ptr Pointer *ptr zugehörige Variable insbesondere *&var = var sowie &*ptr = ptr Bei Deklaration muss Typ des Pointers angegeben werden, da *ptr eine Variable sein soll! int* ptr; deklariert ptr als Pointer auf int Wie üblich gleichzeitige Initialisierung möglich int var; deklariert Variable var vom Typ int int* ptr = &var; deklariert ptr und weist Speicheradresse der Variable var zu Bei solchen Zuweisungen muss der Typ von Pointer und Variable passen, sonst passiert Unglück! I.a. gibt Compiler eine Warnung aus, z.b. incompatible pointer type Analog für andere Datentypen, z.b. double Ein elementares Beispiel main() 4 { 5 int var = 1; 6 int* ptr = &var; 7 8 printf("a) var = %d, *ptr = %d\n",var,*ptr); 9 var = ; 11 printf("b) var = %d, *ptr = %d\n",var,*ptr); 1 *ptr = ; 14 printf("c) var = %d, *ptr = %d\n",var,*ptr); 16 var = 47; 17 printf("d) *(&var) = %d,",*(&var)); 18 printf("*&var = %d\n",*&var); 19 } a) var = 1, *ptr = 1 b) var =, *ptr = c) var =, *ptr = d) *(&var) = 47,*&var =
2 Call by Reference in C Elementare Datentypen werden in C mit Call by Value an Funktionen übergeben z.b. int, double, Pointer Call by Reference ist über Pointer realisierbar: void test(int* y) 4 { 5 printf("a) *y=%d\n", *y); 6 *y = 4; 7 printf("b) *y=%d\n", *y); 8 } 9 11 main() 1 { int x = 1; 14 printf("c) x=%d\n", x); test(&x); 16 printf("d) x=%d\n", x); 17 } Elementare Datentypen Arrays & Pointer sizeof c) x=1 a) *y=1 b) *y=4 d) x=4 6 7 Der Befehl sizeof Elementare Datentypen C kennt folgende elementare Datentypen: Datentyp für Zeichen (z.b. Buchstaben) char Datentypen für Ganzzahlen: short int long Datentypen für Gleitkommazahlen: float double long double Alle Pointer gelten als elementare Datentypen Bemerkungen: Größe der Typen hängt von System (& Compiler) ab Deklaration und Gebrauch wie bisher Man kann Arrays & Pointer bilden 8 void printf_sizeof(double vector[]) { 4 printf("sizeof(vector) = %d\n",sizeof(vector)); 5 } 6 7 main() { 8 int var = 4; 9 double array[11]; double* ptr = array; 11 1 printf("sizeof(var) = %d\n",sizeof(var)); printf("sizeof(double) = %d\n",sizeof(double)); 14 printf("sizeof(array) = %d\n",sizeof(array)); printf("sizeof(ptr) = %d\n",sizeof(ptr)); 16 printf_sizeof(array); 17 } Ist var eine Variable eines elementaren Datentyps, gibt sizeof(var) die Größe der Var. in Bytes zurück Ist type ein Datentyp, so gibt sizeof(type) die Größe einer Variable dieses Typs in Bytes zurück Ist array ein lokales statisches Array, so gibt sizeof(array) die Größe des Arrays in Bytes zurück sizeof(var) = 4 sizeof(double) = 8 sizeof(array) = 88 sizeof(ptr) = 8 sizeof(vector) = 8 9
3 Anmerkungen zu Pointern Funktionen Standard-Notation zur Deklaration ist anders als meine Sichtweise: int *pointer deklariert Pointer auf int Von den C-Erfindern wurden Pointer nicht als Variablen verstanden Für das Verständnis scheint mir aber variable Sichtweise einfacher Leerzeichen wird vom Compiler ignoriert: int* pointer, int *pointer, int*pointer * wird nur auf den folgenden Namen bezogen ACHTUNG bei Deklaration von Listen: int* pointer, var; deklariert Pointer auf int und Variable vom Typ int int *pointer1, *pointer; deklariert zwei Pointer auf int ALSO Listen von Pointern vermeiden! Elementare Datentypen werden an Funktionen mit Call by Value übergeben Return Value einer Funktion darf nur void oder ein elementarer Datentyp sein Arrays Streng genommen, gibt es in C keine Arrays! Deklaration int array[n]; legt Pointer array vom Typ int* an organisiert ab der Adresse array Speicher, um N-mal einen int zu speichern d.h. array enthält Adresse von array[0] Da Pointer als elementare Datentypen mittels Call by Value übergeben werden, werden Arrays augenscheinlich mit Call by Reference übergeben Laufzeitfehler! double* scanfvector(int length) { 4 double vector[length]; 5 int j = 0; 6 for (j=0; j<length; ++j) { 7 vector[j] = 0; 8 printf("vector[%d] = ",j); 9 scanf("%lf",&vector[j]); } 11 return(vector); 1 } 14 main() { double* x; 16 int j = 0; 17 int dim = 0; printf("dim = "); 0 scanf("%d",&dim); 1 x = scanfvector(dim); 4 for (j=0; j<dim; ++j) { 5 printf("x[%d] = %f\n",j,x[j]); 6 } 7 } Dynamische Vektoren statische & dynamische Vektoren Vektoren & Pointer dynamische Speicherverwaltung stdlib.h NULL malloc, realloc, free Syntax des Programms ist OK Problem: Speicher zu x mit Blockende 11 aufgelöst d.h. Pointer aus zeigt auf Irgendwas Abhilfe: Call by Reference (letzte Sitzung!) oder händische Speicherverwaltung (gleich!) 11 1
4 Speicher allokieren Statische Vektoren double array[n]; deklariert statischen Vektor array der Länge N mit double-komponenten Indizierung array[j] mit 0 j N 1 array ist intern vom Typ double* enthält Adr. von array[0], sog. Base Pointer Länge N kann während Programmablauf nicht verändert werden Funktionen können Länge N nicht herausfinden Länge N als Input-Parameter übergeben Nun händische Speicherverwaltung von Arrays dadurch Vektoren dynamischer Länge möglich Einbinden der Standard-Bibl: #include <stdlib.h> wichtige Befehle malloc, free, realloc pointer = malloc(n*sizeof(type)); allokiert Speicher für Vektor der Länge N mit Komponenten vom Typ type malloc kriegt Angabe in Bytes sizeof pointer muss vom Typ type* sein Base Pointer pointer bekommt Adresse der ersten Komponente pointer[0] pointer und N muss sich Prg merken! Häufiger Laufzeitfehler: sizeof vergessen! Achtung: Allokierter Speicher ist uninitialisiert! Beispiel Speicher freigeben free(pointer) gibt Speicher eines dyn. Vektors frei pointer muss Output von malloc sein Achtung: Speicher wird freigegeben, aber pointer existiert weiter Erneuter Zugriff führt (irgendwann) auf Laufzeitfehler Achtung: Speicher freigeben, nicht vergessen! Konvention: Pointer ohne Speicher bekommen den Wert NULL zugewiesen führt sofort auf Speicherzugriffsfehler bei Zugriff 116 #include <stdlib.h> 4 double* scanfvector(int length) { 5 int j = 0; 6 double* vector = malloc(length*sizeof(double)); 7 for (j=0; j<length; ++j) { 8 vector[j] = 0; 9 printf("vector[%d] = ",j); scanf("%lf",&vector[j]); 11 } 1 return vector; } 14 void printfvector(double* vector, int length) { 16 int j = 0; 17 for (j=0; j<length; ++j) { 18 printf("vector[%d] = %f\n",j,vector[j]); 19 } 0 } 1 main() { double* x = NULL; 4 int dim = 0; 5 6 printf("dim = "); 7 scanf("%d",&dim); 8 9 x = scanfvector(dim); 0 printfvector(x,dim); 1 free(x); x = NULL; 4 } 117
5 Dynamische Vektoren pointer = realloc(pointer,nnew*sizeof(type)) verändert Speicherallokation zusätzliche Allokation für Nnew > N Speicherbereich kürzen für Nnew < N Alter Inhalt bleibt (soweit möglich) erhalten #include <stdlib.h> 4 main() { 5 int N = 5; 6 int Nnew = ; 7 int j = 0; 8 9 int* array = malloc(n*sizeof(int)); 11 for (j=0; j<n; ++j) 1 array[j] = j; 14 array = realloc(array,nnew*sizeof(int)); 16 for (j=n; j<nnew; ++j) 17 array[j] = *j; for (j=0; j<nnew; ++j) 0 printf("%d ",array[j]); 1 printf("\n"); free(array); 4 array = NULL; 5 } Bemerkungen Base Pointer (= Output von malloc bzw. realloc) merken & nicht verändern notwendig für fehlerfreies free und realloc bei malloc und realloc nicht sizeof vergessen Typ des Base Pointers muss zum sizeof passen! allokierter Speicherbereich ist stets uninitialisiert nach Allokation stets initialisieren Länge des dynamischen Arrays merken kann Prg nicht herausfinden! Nicht mehr benötigten Speicher freigeben insb. vor Blockende }, da dann Base Pointer weg Pointer auf NULL setzen, wenn ohne Speicher Fehlermeldung, falls Prg aus Versehen auf Kompontente array[j] zugreift Nie realloc, free auf statisches Array anwenden Führt auf Laufzeitfehler, da Compiler free selbständig hinzugefügt hat! Ansonsten gleicher Zugriff auf Komponenten wie bei statischen Arrays Indizierung array[j] für 0 j N Eine erste Bibliothek Wollen Bibliothek mit Standardfunktionen zum Umgang mit dynamischen Vektoren anlegen Header-File dynamicvectors.h zur Bibliothek enthält alle Funktionssignaturen enthält Kommentare zu den Funktionen #include <stdlib.h> 4 // memory allocation and initialization of 5 // a dynamic double vector of length n 6 7 double* mallocvector(int n); 8 9 // free a dynamic vector of arbitrary length and // set the pointer to NULL 11 1 double* freevector(double* vector); 14 // re-allocation of dynamic double vector and // initialization of the new entries double* reallocvector(double* vector, 18 int n, int nnew); 19 0 // allocate dynamic double vector of length n 1 // and read entries from keyboard double* scanfvector(int n); 4 5 // print dynamic double vector of length n to 6 // shell 7 8 double* printfvector(double* vector, int n); Source-Code (Ausschnitt) 1 #include "dynamicvectors.h" double* mallocvector(int n) { 4 int j = 0; 5 double* vector = malloc(n*sizeof(double)); 6 for (j=0; j<n; ++j) 7 vector[j] = 0; 8 return vector; 9 } 11 double* freevector(double* vector) { 1 free(vector); return NULL; 14 } 16 double* reallocvector(double* vector, 17 int n, int nnew) { 18 int j = 0; 19 vector = realloc(vector,nnew*sizeof(double)); 0 for (j=n; j<nnew; ++j) 1 vector[j] = 0; return vector; } 4 5 double* scanfvector(int n) { 6 int j = 0; 7 double* vector = mallocvector(n); 8 for (j=0; j<n; ++j) { 9 vector[j] = 0; 0 printf("vector[%d] = ",j); 1 scanf("%lf",&vector[j]); } return vector; 4 } 11
Dynamische Vektoren. Statische Vektoren. Speicher allokieren. Speicher freigeben
Dynamische Vektoren statische & dynamische Vektoren Vektoren & Pointer dynamische Speicherverwaltung Statische Vektoren double array[n]; deklariert statischen Vektor array der Länge N mit double-komponenten
Advanced 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
Zusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
Programmierung 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
PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
Einführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt [email protected] Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
Elementare 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
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
Einführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
Dr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
RO-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
Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
Tutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Erste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian
Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,
Einführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
Dynamische 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...............................
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
Der Datentyp String. Stringvariable und -vergleiche
Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da
Kurze Einführung in die Programmiersprache C++ und in Root
Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung
+ C - Array (Vektoren, Felder)
+ C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein
Die Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
C 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
Zeiger: Der Adressoperator &
Zeiger: Der Adressoperator & Variablen werden im Computer im Speicher abgelegt. Nach der Deklaration int a,b,c; double x,y,z; Sieht die Speicherbelegung etwa wie folgt aus: a b c x y z Jede Variable hat
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Typische Speicherfehler in C
Typische Speicherfehler in C Thorsten Ploß Informatik Universität Hamburg Proseminar: C-Grundlagen und Konzepte 17.05.2013 1 / 13 Inhaltsverzeichnis Einleitung Klassische Speicherverwaltung - Fehlerquellen
Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6
Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise
Übung zur Vorlesung Programmieren in C
Übung zur Vorlesung Programmieren in C 6 Pointers Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 6 Pointers Wintersemester 2015/2016 1 / 29 Gliederung
1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer
Unterprogramme, Pointer und die Übergabe von Arrays
Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte
Javakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
Strukturierte Datentypen und Funktionszeiger
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
Kurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:
Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
Java I Vorlesung 6 Referenz-Datentypen
Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:
Felder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
Programmieren in C. Zeiger und Zeichenketten. Prof. Dr. Nikolaus Wulff
Programmieren in C Zeiger und Zeichenketten Prof. Dr. Nikolaus Wulff Zeiger Variablen benötigen zur Laufzeit einen bestimmten Speicherplatz. Die Größe des Bedarfs richtet sich nach dem Typ der Variablen,
Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
AuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
C-Propädeutikum Höhere Datentypen
C-Propädeutikum Höhere Datentypen Dipl.-Inf. Stefan Freitag [email protected] Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann
Werkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen
Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.
Programmieren in C++ Arrays, Strings und Zeigerarithmetik
Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik
Dr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany
C++ Programmierung Uwe Naumann LuFG Informatik 12, RWTH Aachen University, Germany Leave me alone world... Hauptprogramm int main(); return 0; Ausgabe auf Bildschrim #include std :: cout
Algorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Zählschleife. Schleifen. Die for-schleife. Ein weiteres elementares Beispiel. Schleifen führen einen oder mehrere Befehle wiederholt aus
Schleifen Zählschleife for Mathematische Symbole n j=1 und n j=1 Zählschleife for Schleifen führen einen oder mehrere Befehle wiederholt aus In Aufgabenstellung häufig Hinweise, wie Vektoren & Matrizen
JAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei
Grundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
Funktionen. Funktionen. Namenskonvention. Funktionen in C. Variablen. Call by Value
Funktionen Funktionen Funktion Eingabe- / Ausgabeparameter Call by Value / Call by Reference return void Funktion = Zusammenfassung mehrerer Anweisungen zu einem aufrufbaren Ganzen output = function(input)
Die Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
Einführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
Lösungsvorschlag zur 9. Übung
Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 9. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der folgenden Aussagen über
Grundlagen C und C++ Einheit 02: Grundlagen in C. Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 02: Grundlagen in C Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Grundlagen in C Arrays und Zeiger #define Direktive Typdefs und Enums Auf zur Objektorientierung:
Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff
Programmieren in C Die C-Standardbibliothek Prof. Dr. Nikolaus Wulff Die C-Standard Bibliothek Mit dem C Compiler werden viel fertige Bibliotheksfunktionen ausgeliefert. Eine genaue Kenntnis dieser Funktionen
Kapitel 5. Datentypen und Operatoren
Kapitel 5 Datentypen und Operatoren 1 Gliederung Kapitel 5 Datentypen und Operatoren 5.1 Elementare Datentypen 5.2 Symbolische Konstanten 5.3 Typumwandlungen 5.4 Operatoren 2 5.1. Elementare Datentypen
Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
Modul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
3. Arrays und Pointer
C und C++ (CPP) 3. Arrays und Pointer Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften [email protected] Marc Rennhard,
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
Objektorientierte Programmierung OOP Programmieren mit Java
4 Datenfelder, Parameterübergabe, Casting Objektorientierte Programmierung OOP Programmieren mit Java 4 Datenfelder, Parameterübergabe, Casting 4 Datenfelder, Parameterübergabe, Casting 4.1 Datenfelder
Tafelübung zu BS 4. Speicherverwaltung
Tafelübung zu BS 4. Speicherverwaltung Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/
3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
9 Zeiger (Pointer). Dynamischer Speicher
9 Zeiger (Pointer). Dynamischer Speicher Jörn Loviscach Versionsstand: 25. September 2013, 18:07 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html
Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein ([email protected].
Java Crashkurs Kim-Manuel Klein ([email protected]) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Praxis 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
Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein ([email protected]) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Objective-C CheatSheet
App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController
Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?
Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)
Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und
Proseminar C-Programmierung. Strukturen. Von Marcel Lebek
Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11
C kompakt für Java-Programmierer
C kompakt für Java-Programmierer Prof. Dr. Carsten Vogt, FH Köln, Institut für Nachrichtentechnik, www.nt.fh-koeln.de/vogt/ Stand: Februar 2012 In der Übung und im Praktikum "Betriebssysteme und verteilte
Kapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg
Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen
Kurzeinführung in C++
Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 3.3 Mehrdimensionale Arrays W. Tasin, M.Sc. Fakultät 04 [email protected] Allgemeines (1) Ein Feld (Array) kann seinerseits als Komponente wieder ein Array besitzen. Es wird
