Konstante Zeiger in c

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Konstante Zeiger in c

    Hallo C Freunde!

    Ich habe da mal ein paar Fragen zu Konstanten Zeigern ....

    also

    Quellcode

    1. const char* strChar(char *s, int c);
    2. char* strChar(const char *s, int c);
    3. char* strChar(char const *s, int c);
    4. /* 1. strChar ist ein Zeiger der auf ein char const zeigt (bedeutet das das Char eine Konstante ist ??? */
    5. /*2. s ist ein zeiger der auf eine char const zeigt und strChar ist ein Zeiger auf der auf ein char zeit */
    6. /* s ist ein const zeiger der auf ein char zeigt (oder bedeutet das das char eine const ist weil eigentlich gehört ja alles was links von const steht zur const ?) */


    Ist das soweit richtig wie ich es mir Vorstelle ???? die Zweite Frage lautet:

    die oben genannten Deklarationen gehören zu einer Funktion die das erste Auftreten eines Zeichens in einem C-String sucht und einen Zeiger auf das gefundene Zeichen zurückgibt. Welche Variante eignet sich am besten?


    Habe keine Ahnung weil ich das Zeiger Prinzip glaub ich noch nicht so richtig verstanden habe... wäre dankbar für eine Erklärung oder eine Antwort mit Erklärung zu dieser Frage?

    Bitte um schnelle Antwort ist wichtig!!

    Danke

    Mit freundlichen Grüßen
  • Quellcode

    1. const char* strChar(char *s, int c);
    2. /* Funktion, die einen Zeiger auf char und einen int nimmt und einen Zeiger auf const char zurückgibt. */
    3. char* strChar(const char *s, int c);
    4. /* Funktion, die einen Zeiger auf cont char und einen int nimmt und einen Zeiger auf char zurückgibt. */
    5. char* strChar(char const *s, int c);
    6. /* Dasselbe wie 2 */

    Welche Variante eignet sich am besten?

    Keine davon. Die Funktion sollte einmal für const und einmal für non-const char* überladen werden:

    Quellcode

    1. const char* strChar(const char* s, char c);
    2. char* strChar(char* s, char c);

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von wasserfall ()