C Frage zu Pointern | char *mask3(char *teststring, char *wort)

BaseUser

Ensign
Dabei seit
Feb. 2005
Beiträge
200
Hallo,

meine Frage wird für Profis wahrscheinlich recht einfach sein...

Was bedeutet das * vor mask3 bei der Funktion

char *mask3(char *teststring, char *wort)

? Könnte mir das jemand erklären? :)

char *teststring, char *wort stellen ja Pointer da, aber das * vor mask3 verstehe ich nicht...

Stellt das die Startadresse im Speicher für die Funktion mask3 dar?
 

Kamikatze

Captain
Dabei seit
Okt. 2004
Beiträge
3.703
Nein, das ist genau so wie bei char *teststring ein Pointer auf einen Character - und da der Ausdruck so vor dem Funktionsnamen steht, bedeutet das, dass die Funktion einen Zeiger auf einen Character zurückliefert.
 

Boron

Commander
Dabei seit
Sep. 2001
Beiträge
2.784
Das ist genau die Schreibweise die zur Verwirrung führt.
Ich ziehe es vor den *-Operator immer an den Datentyp zu schreiben. Bei mir sähe die Funktion so aus:
Code:
char* mask3(char* teststring, char* wort)
Ich finde es einfach besser wenn ich sofort erkenne, dass es sich um einen Zeiger handelt. Code bei dem nach dem Typ erst ein Leerzeichen und dann der * kommt verwirrt mich immer.

BaseUser ist genau auf das hereingefallen.
 

Darii

Lt. Junior Grade
Dabei seit
Aug. 2004
Beiträge
499
Das ist genau die Schreibweise die zur Verwirrung führt.
Ich ziehe es vor den *-Operator immer an den Datentyp zu schreiben. Bei mir sähe die Funktion so aus:
Code:
char* mask3(char* teststring, char* wort)
Ich finde es einfach besser wenn ich sofort erkenne, dass es sich um einen Zeiger handelt. Code bei dem nach dem Typ erst ein Leerzeichen und dann der * kommt verwirrt mich immer.
Bei dieser Schreibweise fällt man aber bei
Code:
int* foo, bar; // foo ist ein Pointer, bar ein int
rein. Die Syntax von C führt zwangsläufig irgendwann zu Verwirrung, da lässt sich nichts dran ändern. ;)
 
Zuletzt bearbeitet:

Boron

Commander
Dabei seit
Sep. 2001
Beiträge
2.784
Code:
// foo ist ein Pointer, bar ein int
int* foo;
int  bar;
So gibt es keine Chance für Verwirrung :).
Aber wir schweifen ab. Das wird zur einer Diskussion über "Programmierstil". Und diese Art Diskussion artet erfahrungsgemäß schnell zu einem Glaubenskrieg aus.
 
S

Stefan_Sch

Gast
Ich schließe mich der Konvention von Boron an. Deklarationen von Variablen sollten pro Zeile erfolgen. Das erhöht auch die Lesbarkeit.
 
Top