kann mir jemand helfen und erklären, was das "Sternchen" (--> * ) nach dem char und vor der Variablen "str" bedeutet?
1 | void Outs(char* str) |
2 | {
|
3 | while (*str != 0) {Outc(*str++);} |
4 | }
|
Danke :-)
|
Forum: Mikrocontroller und Digitale Elektronik was bedeutet das Sternchen *kann mir jemand helfen und erklären, was das "Sternchen" (--> * ) nach dem char und vor der Variablen "str" bedeutet?
Danke :-) Ganz kurz: Das bedeutet, dass du mal ein C-Buch lesen solltest. Damit ich hier nicht nur meckere, das zeigt hinter char an, dass die Variable str ein Zeiger auf eine Variable vom Typ char ist. In der While Schleife zeigt es an, dass du auf den Wert an der Adresse, die durch die Variable str angegeben wird, zugreifen willst. Das sagt, dass die Variable str ein Zeiger auf ein char ist. Um an das Zeichen zu kommen, muss man bei dem Zugriff auch den Stern benutzen. Und spätestens jetzt sollte man ein gutes C-Buch lesen. Uwe schrieb: > Guck mal unter Poineter bzw. Parameter per Referenz auf ... ... und am besten machst du das in deinem nagelneuen C-Buch. Hinter diesem Sternchen versteckt sich ein halber Kosmos an Dingen, die du eigentlich wissen solltest, wenn du C programmieren willst. Damit wird ein Zeiger auf die Variable str vereinbart. Das Sternchen gehört zur Variable str Bzw. Zeiger. Bei der Deklaration: char* str => str ist ein Zeiger, der auf Werte des Datentyps char zeigt. Im Code: str => enthält die Adresse eines Char-Werts *str => * ist Auflösungsoperator, der Ausdruck liefert den Wert zurück, auf den str zeigt. Die Adresse dieses Wertes ist ja in str hinterlegt. Kauf dir ein C-Grundlagenbuch. Helmut Herold oder Kernighan/Ritchie sind brauchbar. mfg mf PS: An sich ist die Zeigeraarithmetik nur eine Methode der Visualisierung fütr dich als Programmierer. Der Mikroprozessor, der den Code ausführt, verarbeitet nur Zahlen. Es gibt vielleicht Pointer-Register, aber das macht die Zahl noch lang nicht zum Zeiger... http://www.mikrocontroller.net/articles/Zeiger http://home.fhtw-berlin.de/~junghans/cref/CONCEPT/pointers.html Karl Heinz Buchegger schrieb: > Hinter diesem Sternchen versteckt sich ein halber Kosmos Das '*' ist das, was C von anderen damaligen Programmiersprachen (wie Basic und Pascal) unterschied und für den durchbrechenden Erfolg gesorgt hat... Mit Pointern lassen sich dann solche hübschen Sachen machen: ;-)
Siehe: http://codepad.org/bmekxhgv Lothar Miller schrieb: > Das '*' ist das, was C von anderen damaligen Programmiersprachen (wie > Basic und Pascal) unterschied 's ist lange her, aber irgendwas gibt's bei Pascal auch mit Zeigern (@ bzw. ^ als Symbol). Man kann sich dort nur nicht so gut damit ins Knie schießen wie bei C. :-) Jörg Wunsch schrieb: > Man kann sich dort nur nicht so gut damit ins Knie schießen wie bei C. > :-) Naja, sagen wir mal "gut" schon, aber nicht so "leicht"... ;-) Ich meine, mich daran zu erinnern, dass das irgendwie umständlich war. Oder lags nur daran, dass ich das mit den Pointern noch nicht kapiert hatte? Jörg Wunsch schrieb: > Lothar Miller schrieb: >> Das '*' ist das, was C von anderen damaligen Programmiersprachen (wie >> Basic und Pascal) unterschied > > 's ist lange her, aber irgendwas gibt's bei Pascal auch mit Zeigern > (@ bzw. ^ als Symbol). Man kann sich dort nur nicht so gut damit ins > Knie schießen wie bei C. :-) Lothar hat übertrieben :-) Pointer gibts in allen ernsthaften Programmiersprachen die in das funktionale Paradigma fallen. Also jetzt mit Ausnahme von Ur-Fortran, BASIC und diesem 'wir räumen hinter dir her weil du selbst zu doof bist Ordnung zu halten, dafür nennen wir Pointer halt Referenzen oder Referenz-Objekt und du musst mit new herumschmeissen wie ein Wilder' Gesocks Sprachen :-) Karl Heinz Buchegger schrieb: > und diesem 'wir räumen > hinter dir her weil du selbst zu doof bist Ordnung zu halten, dafür > nennen wir Pointer halt Referenzen oder Referenz-Objekt und du musst mit > new herumschmeissen wie ein Wilder' Gesocks Sprachen :-) ROFL, ich würde es mal so definieren: "wir räumen hinter dir her weil es erwiesen ist dass ca 80 bis 90% aller programmierer zu doof sind das selbst zu tun und auch die besten dier immer wieder mal ein haufen Zeit verlieren da ihre fehler zu finden" Solange ich nicht die letzten 20% der Rechnerperformance brauche geniesse ich diese Sprachen wirklich :-) Frei nach dem Motto, man kann auch auf dem Boden schlafen aber in einem ordentlichen Bett liegt sichs einfach bequemer. No offend, Karl Heinz am besten löscht du meinen Beitrag wieder sonst wird vieleicht noch ein bashing thread draus und das war nicht gewollt, ich fand nur dein Zitat oben so nett :-) Jörg Wunsch schrieb: > 's ist lange her, aber irgendwas gibt's bei Pascal auch mit Zeigern > (@ bzw. ^ als Symbol). Man kann sich dort nur nicht so gut damit ins > Knie schießen wie bei C. :-) In Pascal fand ichs nur ziemlich seltsam und unübersichtlich, während es in C am ersten Tag dazugehörte und eigentlich logisch war (Von der Deklaration von Funktionspointern mal abgesehen :-)) Moderne Basic-Dialekte können natürlich auch Pointer. Leute, die Welt ist nicht 1985 stehen geblieben! UR-Schmitt schrieb: > No offend, Karl Heinz am besten löscht du meinen Beitrag wieder sonst > wird vieleicht noch ein bashing thread draus und das war nicht gewollt, > ich fand nur dein Zitat oben so nett :-) :-) Ist schon klar. Ich will auch keinen Flame-War entfachen und wie ich an der Formulierung gefeilt habe, sind mir dann auch ein paar Sprachen eingefallen, in denen es tatsächlich keine Pointer gibt (zumindest nicht das ich wüsste). Lisp und Prolog fallen mir da zb auf Anhieb ein. Wobei: bei Lisp war da was. Lang, lang ists her. CAR und CDR sind im Prinzip Pointer und beim Zusammenfügen von Listen muss man aufpassen, welche Operation man da jetzt pointermässig macht. Öl ins Feuer :-) > Frei nach dem Motto, man kann auch auf dem Boden schlafen aber in > einem ordentlichen Bett liegt sichs einfach bequemer. Das heißt ja nicht, dass ich auf dem Boden schlafe. Aber im Notfall kann ich mir mein Bett noch selber bauen :-) Im Notfall, ja. Aber du baust es nicht Tag für Tag selber neu auf, oder? :-P Jens Plappert schrieb: > Im Notfall, ja. Aber du baust es nicht Tag für Tag selber neu auf, oder? Das dachte ich wörtlich auch :-) Danke Leute, ihr habt mir gerade mein etwas besch..eidenen Tag hier in der Firma versüsst :-) Jens Plappert schrieb: > Im Notfall, ja. Aber du baust es nicht Tag für Tag selber neu auf, oder? > :-P Natürlich nicht. Ich mach den Schrank (die Library) auf und hol das fertig zusammengebaute raus. Nur manchmal sticht der Hafer und ich seh nach, ob ichs noch mit der Laubsäge bauen kann :-) Karl Heinz Buchegger schrieb: > Nur manchmal sticht der Hafer und ich seh nach, ob ichs noch mit der > Laubsäge bauen kann :-) Tja, so wird man alt. Früher hat man was anderes gemacht, wenn der Hafer sticht! Klaus Wachtler schrieb: > Tja, so wird man alt. Früher hat man was anderes gemacht, wenn der Hafer > sticht! ROFL schönen Feierabend Karl Heinz Buchegger schrieb: > Aber im Notfall kann ich mir mein Bett noch selber bauen :-) Oder wenigstens drauf zeigen. Oder allerwenigstens auf einen zeigen, der drauf zeigen kann... ;-) Jens Plappert schrieb: > Moderne Basic-Dialekte können natürlich auch Pointer. > Leute, die Welt ist nicht 1985 stehen geblieben! Und ein PIC hat jetzt auch Interrupts. Das dürfte sich zeitlich etwa decken... ;-) Ich hol schon mal das Hefeweizen und die Chips... Lothar Miller schrieb: > Karl Heinz Buchegger schrieb: >> Aber im Notfall kann ich mir mein Bett noch selber bauen :-) > Oder wenigstens drauf zeigen. Oder allerwenigstens auf einen zeigen, der > drauf zeigen kann... ;-) Ich kenn jemanden, der hat einen Laserpointer :-) > Ich hol schon mal das Hefeweizen und die Chips... ********** Das war jetzt gemein, bei der Hitze hier. Lothar schrob:
>Ich hol schon mal das Hefeweizen....
Pfui Teufel! Das ist das letzte Gebräu. Da sträuben sich mir die Haare
auf den Unterarmen.
:-(
MfG Paul
Lothar Miller schrieb: > Siehe: http://codepad.org/bmekxhgv danke für diesen Link! Wenn die Seite nur etwas flinker wär ;) Paul Baumann schrieb: > Pfui Teufel! Das ist das letzte Gebräu. > Da sträuben sich mir die Haare auf den Unterarmen. Zum Wohlsein! ;-) Da war noch die Anekdote, wo ich mal ins norddeutsche zu einer Schulung hoch musste, und mein Schüler dann am Montag sagte: "Bitte nicht so schnell, ich war gestern weg, habe 8 Bier getrunken und jetzt Kopfweh!" Da hat man als Lehrer natürlich 1.Respekt (weil 8 Hefeweizen=4 Liter) und 2.Einsehen und macht beim Vermitteln der Lernstoffes etwas langsamer. Am Abend gehen wir dann zusammen aus, und er bestellt gleich mal 2 Bier. Kommt da dann so ein 0,2er-Sektglas voll gelber Flüssigkeit an, und ich frage ihn erschrocken: "Acht davon und man hat Kopfweh? Mir bitte ein Wasser!" Paul Baumann schrieb: > Lothar schrob: >>Ich hol schon mal das Hefeweizen.... > > Pfui Teufel! Das ist das letzte Gebräu. Da sträuben sich mir die Haare > auf den Unterarmen. > > :-( > > MfG Paul Mensch, Hefe ist gut für die Haut. O.T.
@Lothar
Ich trinke ausschließlich tschechisches Bier nach Pilsner Brauart. Wenig
davon (teuer), aber gut.
Ich denke, daß es einen Zusammenhang zwischen dem Hefe-Weizenbier-Genuß
und dem Verständnis für die Sprache "C" geben muß, denn das fehlt mir
vollständig.
Reine Haut schrob:
>Mensch, Hefe ist gut für die Haut.
Das haut nicht hin....
Ich rasiere mich mit der Sichel.
;-)
MfG Paul
Paul Baumann schrieb: > Ich denke, daß es einen Zusammenhang zwischen dem Hefe-Weizenbier-Genuß > und dem Verständnis für die Sprache "C" geben muß, denn das fehlt mir > vollständig. http://xkcd.com/323/ Der ist auch nicht so einfach, der Zusammenhang... Musst schon die richtige Menge trinken ;) :-) Der Maus-Tooltip ist auch gut: "Apple uses automated Schnapps I.V.s" Also automatisierte intravenöse Verabreichung von Schnaps. Paul Baumann schrieb: > Lothar schrob: >>Ich hol schon mal das Hefeweizen.... > > Pfui Teufel! Das ist das letzte Gebräu. Da sträuben sich mir die Haare > auf den Unterarmen. Paul Baumann schrieb: > Ich rasiere mich mit der Sichel. > ;-) Langsam verstehe ich, warum Hefeweizen erst relativ spät in der Evolution entstand :-) Aber im Ernst: die meisten Weizen mag ich auch nicht. Aber einige sind dafür umso besser. Vielleicht hast du nur noch nicht das richtige gefunden? Was natürlich auch kein Problem ist, wenn du etwas anderes hast, was schmeckt. 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
Noch kein Account? Hier anmelden.
|
|