Forum: Mikrocontroller und Digitale Elektronik was bedeutet das Sternchen *


von Peter Schwaab (Gast)


Lesenswert?

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 :-)

von Uwe (Gast)


Lesenswert?

Guck mal unter Poineter bzw. Parameter per Referenz auf ...

von Timmo H. (masterfx)


Lesenswert?


von zeiger (Gast)


Lesenswert?

das ist ein Zeiger auf ein char mit dem Namen str

von Sven H. (dsb_sven)


Lesenswert?

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.

von PittyJ (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

Damit wird ein Zeiger auf die Variable str vereinbart. Das Sternchen 
gehört zur Variable str Bzw. Zeiger.

von Achim M. (minifloat)


Lesenswert?

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...

von Michi (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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:   ;-)
1
printf("%c ","0123456789ABCDEF"[i]);
2
printf("%c ",i["0123456789ABCDEF"]);
3
printf("%c ",*("0123456789ABCDEF"+i));
Siehe: http://codepad.org/bmekxhgv

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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. :-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

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 :-)

von UR-Schmitt (Gast)


Lesenswert?

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 :-)

von UR-Schmitt (Gast)


Lesenswert?

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 :-))

von Jens P. (Gast)


Lesenswert?

Moderne Basic-Dialekte können natürlich auch Pointer. Leute, die Welt 
ist nicht 1985 stehen geblieben!

von Karl H. (kbuchegg)


Lesenswert?

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 :-)

von Jens P. (Gast)


Lesenswert?

Im Notfall, ja. Aber du baust es nicht Tag für Tag selber neu auf, oder? 
:-P

von UR-Schmitt (Gast)


Lesenswert?

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 :-)

von Karl H. (kbuchegg)


Lesenswert?

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 :-)

von Klaus W. (mfgkw)


Lesenswert?

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!

von UR-Schmitt (Gast)


Lesenswert?

Klaus Wachtler schrieb:
> Tja, so wird man alt. Früher hat man was anderes gemacht, wenn der Hafer
> sticht!

ROFL
schönen Feierabend

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Karl H. (kbuchegg)


Lesenswert?

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.

von Paul Baumann (Gast)


Lesenswert?

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

von Vlad T. (vlad_tepesch)


Lesenswert?

Lothar Miller schrieb:
> Siehe: http://codepad.org/bmekxhgv

danke für diesen Link!

Wenn die Seite nur etwas flinker wär ;)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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!"

von ReineHaut (Gast)


Lesenswert?

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.

von Paul Baumann (Gast)


Lesenswert?

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

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

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 ;)

von Simon K. (simon) Benutzerseite


Lesenswert?

:-) Der Maus-Tooltip ist auch gut: "Apple uses automated Schnapps I.V.s"
Also automatisierte intravenöse Verabreichung von Schnaps.

von Klaus W. (mfgkw)


Lesenswert?

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.