strlen(const char *s) - warum const?

Gast #6362277
Hallo Leute - ich hoffe meine Frage ist nicht allzu blöd, aber mich 
würde interessieren was der Grund ist, warum in den Funktionen der 
string Library beispielsweise bei der Funktion strlen(const char *s) der 
pointer als const deklariert ist?

Wenn der Übergabeparameter kein const ist gibt es ja eine Warnung, 
welche man mittels typecast verhindern kann - aber warum ist das so?

Danke und viele Grüße,

Max
Weil strlen den übergebenen String nicht ändert. Bei strcpy ist zum 
Beispiel das Ziel nicht const, die Quelle schon.

Zu const casten geht immer (etwas das du verändern darfst, darfst du 
auch nicht verändern), umgekehrt nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.