Hallo! Ich beschäftige mich längere Zeit mit der C-Programmierung für Mikrocontroller. Vorher habe ich ausschließlich in Assembler programmiert. Nun, ständig laufen mir die Pointer über den Weg. Allerdings, so richtig verstehe ich den Umgang mit dieser Funktion nicht. Gibt es irgendwo einen gute Literatur, wo man sich Information besorgen kann ? Kann auch ein pdf oder ein Link sein! Danke vorab für Eure Beiträge !!!!
Das sind keine Funktionen. Der Ausdruck 'Pointer' wird in 2 Zusammenhängen benutzt_ * als Synonym für 'Adresse von' * als Variable in der eine Speicheradresse gespeichert wird. Wenn du Assembler programmiert hast, dann kennst du wahrscheinlich Pointer bereits: Stell dir vor, du hast ein Register (Registerpärchen) indem du die Speicheradresse speicherst, von der du tatsächlich lesen möchtest. Um tatsächlich zu lesen, programmierst du dass der Zugriff indirekt über dieses Register oder Registerpärchen geführt werden soll. Genau das ist in C-Terminologie ein 'Pointer'.
Wenn Du Dich ohne Vorkenntnisse mit C beschäftigen willst, solltest Du Dir sowieso ein entsprechendes Buch zulegen (leihen oder kaufen). Imho ist das Buch von den C-Erfindern Kernighan und Ritchie ein ziemlich gutes Werk. Da ist auch die Sache mit den Pointern recht gut erklärt. Ansonsten hat Karl Heinz ja schon eine Erklärung geliefert. Ein Zugriff mit einem Pointer (auf deutsch Zeiger) ist ein indirekter Zugriff, bei dem die betreffende Variable nicht direkt, sondern über ihre Adresse angesprochen wird, so wie es in AVR-Assembler z.B. mit ld(d) oder lpm gemacht wird. Der Zeiger zeigt nur auf die Variable...
Hallo Stefan! Mit Pointern ist's ähnlich wie mit dem Deppenapostroph (s. "Info's zu Pointern". Statt überall sinnlos Apostrophe zu setzen, schreibst du vor jeden Variablennamen ein "*" und schon klappt's mit den Pointern. Beispiel: Statt int info; info=42; schreibst du int *info; *info=42; Es kann noch Unannehmlichkeiten entsprechend nervigen Antworten auf Deppenapostrophe geben, die dann in Form von Segmentation faults auftreten. Um das zu verhindern müsstest du deutsch bzw. C schreiben lernen.
@Unbekannter: Das ist sogar noch schlimmer, das ist kein Deppenapostroph, sondern ein Deppenakzent: Info´s und nicht Info's In keiner westeuropäischen Sprache wird der Plural durch Anhängen eines Apostroph-s gebildet, noch weniger durch Anhängen eines Akzent-s. Es gibt zwar Vermutungen, daß das bei einigen FNBL-Dialekten doch der Fall wäre, aber das will & mag ich nicht glauben. So schlecht kann doch die Bildung auch dort nicht gewesen sein. Zurück zum Thema: Beispiel: Statt int info; info=42; schreibst du int *info; *info=42; Dieses gutgemeinte Beispiel geht in die Hose, weil der Pointer, der hier verwendet wird, irgendwohin zeigt. Den Zahlenwert aber "irgendwohin" zu schreiben ist selten sinnvoll und wird auch nur selten den erwünschten Effekt haben. Damit man einen Pointer so verwenden kann, muss er initialisiert werden, d.h. auf eine sinnvolle Adresse zeigen: int info; int *pointer; pointer = &info; *pointer = 42; Inhaltlich hat Karl Heinz alles wesentliche gesagt; ich frage mich ein bisschen, wie man Assembler programmieren können will, wenn dieses Konzept unverständlich ist ... aber jeder hat seine persönliche Herangehensweise an ein Problem und vielleicht hat es bei Stefan jetzt auch schon längst sehr laut "Aha!" gemacht und eine leichte Schamesröte sein Gesicht erobert ...
Danke für Eure Beitrage ! @ Rufus Auch schön, dass es doch immer noch Leute mit klügen Sprüchen gibt.. Naja, auch danke für deinen unpersönlichen Beitrag !!! Gruss Stefan
Vor Sattzzeichen kommen keine Leerzeichen. Und mehrere Ausrufezeichen hintereinander ... ein sicheres Zeichen für einen kranken Geist.
Ärgerlich finde ich, daß selbst, wenn man es mögichst diplomatisch formuliert, die Leute immer gleich verärgert sind, wenn man sie auf ihre Rechtschreib-, Zeichensetzungs- oder ähnliche Fehler aufmerksam macht. Die meisten wissen sonst nicht, daß es falsch ist und machen es immer wieder falsch. Die Antwort auf diese Hilfe liegt fast immer je nach Laune zwischen einfachem Ignorieren und wüsten Beschimpfungen, weshalb ich mich meist lieber zurückhalte. Schade eigentlich, daß niemand mehr überhaupt wissen will, was er falsch macht.
> Schade eigentlich, daß niemand mehr überhaupt wissen will, was er > falsch macht. Leider. Aber ich persönlich sehe Korrekturen meiner Fehler immer gerne - nur so lernt man dazu! ----, (QuadDash).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.