PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pointer & strukturen in c...?


matzekahl
2006-08-24, 22:24:29
Moin...

ich bräuchte mal eine einfache Erklärung wozu ich die Pointer , Strukturen brauche und was sie machen, sowie Beispiele wie man beide zusammen verknüpfen kann...
Ich habe mir schon etliche Bücher gegeben, habe bis jetzt keins gefunden welches meiner holen Birne zusagt :biggrin:

Expandable
2006-08-24, 23:07:54
Erwartest Du jetzt, dass wir dir hier seitenweise Erklärungen dazu schreiben?

Eine Struktur ist im Wesentlichen eine Zusammenfassung zusammengehörender Variablen (unter C. Unter C++ ist das ganze dann ggf. noch objektorientiert, das ist was ganz was anderes). Also wenn Du z.B. ein Kontaktbuch schreibst, willst Du nicht

char* vorname;
char* nachname;
int telefon;

haben (dies hat im Code keinen erkennbaren Zusammenhang, rein von der Syntax her), sondern lieber sowas:

struct Kontakt
{
char* vorname;
char* nachname;
int telefon;
};

Jetzt hast Du einen Zusammenhang hergestellt - ein Kontakt besteht aus Vor- und Nachname sowie Telnr.

Die Struktur initialisiert Du so auf dem Stack:

struct Kontakt myContact;
myContact.Vorname = "Peter";
myContact.Nachname = "Hanswurst";
myContact.Telefon = 33939292;

Und so als Pointer;
struct Kontakt* pointerContact = new Kontakt(); // Achtung, new ist C++, unter C glaube ich ist es ... = (Kontakt *)alloc(sizeof(Kontakt));
Und dann:
(*pointerContact).Vorname = "Peter"; // besser: pointerContact->Vorname = "Peter";
etc.

Aber wozu man Pointer braucht... boaaah... das kann man nicht so einfach kurz jemandem erklären... dazu gibt's doch bestimmt gute Tutorials, oder?

SGT.Hawk
2006-08-25, 04:34:32
Pointer werden z.B als Übergabe-Parameter für Funktionen benutzt, aus inhaltlichen und Performance Gründen.

ollix
2006-08-26, 20:03:12
struct Kontakt myContact;
myContact.Vorname = "Peter";
myContact.Nachname = "Hanswurst";
myContact.Telefon = 33939292; Die Nummer ist falsch, da meldet sich immer jemand anders.

Pointer werden z.B als Übergabe-Parameter für Funktionen benutzt, aus inhaltlichen und Performance Gründen. Dafür gut geeignet könnte man noch die Referenz mit den Topf werfen :)

Pointer (http://de.wikipedia.org/wiki/Zeiger_%28Informatik%29) vs. Referenz (http://de.wikipedia.org/wiki/Referenz_%28Programmierung%29)

Gast
2006-08-26, 22:27:08
Es ging um C - da gibts keine Referenzen.