Programmieren in C Wie speichert C

Slides:



Advertisements
Ähnliche Präsentationen
Hochschule Fulda – FB ET Sommersemester 2010
Advertisements

Funktionen, Felder und Parameter-übergabe
Funktionen.
Funktionen und Module Einführung anhand des Beispiels Wörter sortieren Timm Grams Fachhochschule Fulda Fachbereich Elektrotechnik und Informationstechnik.
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Funktionen.
Parameterübergabe von zweidimensionalen Feldern in Funktionen.
Objekte und Arbeitsspeicher
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 5 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Hochschule Fulda – FB ET Sommersemester 2010
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Arrays,Strings&Pointer in C/C++
Informatik Grundlagen, WS04, Seminar 11
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Repetitorium PG : Pointer FH-Darmstadt, FB Informatik.
Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >
Einführung in die Programmiersprache C 4
Prozeduren und Funktionen
Dynamische Datentypen
Programmieren in C Einführung
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Programmieren in C Dynamische Listen / Bäume
Parameterübergabemechanismen für den Methodenaufruf
Programmieren in C Grundlagen C 5
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Informatik Grundlagen, WS04, Seminar 7
Programmieren in C Grundlagen C 3 Hochschule Fulda – FB AI Wintersemester 2013/14 Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
Informatik II Grundlagen der Programmierung Programmieren in C printf() mit variabler Feldbreite Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Ausflug printf() Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C Sortieren, Suchen
Programmieren in C "Was ist wichtig?"
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Der Prozessor Von Stephan Blum.
Programmieren in C Grundlagen C 1 Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Programmieren in C / C++ ESP8266-Boards und das Internet der Dinge
C / C++ für das Internet der Dinge und Hausautomatisierung Arduino Uno / Nano / … Input, Interrupts, Timer, Sleepmode Hochschule Fulda – FB AI Sommersemester.
Power Point Präsentationsvorlagen
Programmieren in C Dynamische Listen / Bäume
Programmieren in C Einführung
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Programmieren in C / C++ Erste Schritte mit C++ Klassen und Objekte
Programmieren in C Grundlagen C 2
Programmieren in C Grundlagen C 1
AlgoDat Fragen zu Vorlesung und Klausur
Hochschule Fulda – FB AI Sommersemester 2017
Projektmodul DM Kurze Einführung C-Programmierung
Projektmodul DM Kurze Einführung Arduino und Arduino-Programmierung
Projektmodul DM Wearables
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Programmieren in C Module und Bibliotheken
Hochschule Fulda – FB AI Sommersemester 2018
 Präsentation transkript:

Programmieren in C Wie speichert C Programmieren in C Wie speichert C? Variable, Pointer und mehr … aus Grundlagen C 1 Hochschule Fulda – FB AI Sommersemester 2017 http://ad.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI

Rechnerarchitektur 1 von-Neumann-Architektur Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Rechnerarchitektur 2 von-Neumann-Architektur Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Rechnerarchitektur 3 Ablauf einer simplen Operation: c = a + b Variable / Werte sind im Speicher abgelegt Operationen finden in CPU statt Steuerwerk: Adresse a  Speicherbus Steuerwerk: Wert a holen  Register R1 Steuerwerk: Adresse b  Speicherbus Steuerwerk: Wert b holen  Register R2 Rechenwerk: R1 + R2  R1 Steuerwerk: Adresse c  Speicherbus Steuerwerk: Wert Register R1  c Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 1 Hauptspeicher Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 2 Beispiel: Zugriff auf Variable Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 3 Vor Programmstart Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 4 Programmstart und Aufruf von main() Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 5 Zuweisung a = 4; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 6 Zuweisung b = 8; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 7 Berechnung a * b; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 8 Zuweisung c = a * b; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Wie speichert C? 9 Danach Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 1 Wdh: Jede Variable hat einen Speicherort, d.h. eine Adresse im Hauptspeicher Zeiger (Pointer) sind Variable, die auf eine andere Variable verweisen, oder exakter: den Speicherort bzw. die Adresse dieser Variablen als Wert haben Pointerdefinition: int *ip; int i = 5; Adresszuweisung: ip = &i; Zugriff auf Wert: *ip = *ip + *ip; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 2 Zugriff auf Variable mit Pointer Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 3 Vor Programmstart Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 4 Programmstart und Aufruf von main() Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 5 Zuweisung i = 5; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 6 Zuweisung ip = &i; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 7 Berechnung *ip + *ip; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 8 Zuweisung *ip = *ip + *ip; Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 9 Danach Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 10 Warum und wozu Zeiger? Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Exkurs: Zeiger 11 In anderes Programmiersprachen, z.B. Ada oder Pascal, werden Pointer i.d.R. nur für dynamische Datentypen verwendet In C werden Zeiger leider schon von Anfang an für einfache Grundoperationen benötigt! Pointer notwendig für Eingaben: scanf("%d", &i); Pointer notwendig als Funktionsparameter: Funktionsdefinition: void getint(int *i) {} Funktionsaufruf: getint(&i); Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Funktionsaufruf und Parameter Parameterübergabe als Werte (call by value), z.B. bei printf()  Variable werden als Werte in den Adressraum der Funktion kopiert Parameterübergabe als Adresse (call by reference), z.B. bei scanf()  Adressen der Variablen werden in den Adressraum der Funktion kopiert In der Funktion sind die Parameter Zeiger! Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 1 Beispiel: Funktionsaufruf cbv Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 2 Vor Programmstart Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 3 Zuweisung a = 4 Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 4 Kopie des Parameters an Funktion Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 5 Aufruf der Funktion Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 6 Zuweisung b = b * 2 Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 7 Rückkehr aus Funktion Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by value 8 Variable a unverändert!!! Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 1 Beispiel: Funktionsaufruf cbr Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 2 Vor Programmstart Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 3 Wo ist der Unterschied cbv – cbr? Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 4 Aufruf: Adresse der Variablen!!! Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 5 In Funktion: Zeiger auf Variable!!! Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 6 Zuweisung a = 4 Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 7 Kopie der Adresse an Funktion Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 8 Aufruf der Funktion Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 9 Zuweisung *b = *b * 2 Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 10 Rückkehr aus Funktion Programmieren in C - Peter Klingebiel - HS Fulda - FB AI

Call by reference 11 Variable a verändert!!! Programmieren in C - Peter Klingebiel - HS Fulda - FB AI