[C++] C-strings und zeiger

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: [C++] C-strings und zeiger

Beitrag von fat-lobyte » Fr Sep 11, 2009 10:10 pm

Sorry, aber ich muss wiedermal meckern, auch wenn das ein Programm für Anfänger sein soll.
Xin hat geschrieben:

Code: Alles auswählen

using namespace std;
Wieso das denn??? Namespaces sind nicht dazu da Programmieranfänger zu nerven, und auch nicht dazu einfach durch ein using namespace "weggemacht" zu werden!
Warum nicht alternativ dazu:

Code: Alles auswählen

using std::cout;
Das importiert nur cout. Und wieso braucht man das überhaupt? Wieso muss es denn ein Geheimnis sein, dass cout aus std:: kommt? Also ich persönlich verwende gerne std::cout, ich weiß es kommt aus der Standardbibliothek (und nicht meinem Programm) und alle sachen aus der Standardbibliothek leuchten dann noch so schön raus ;-)

Code: Alles auswählen

char carray[] = "Ein einfacher String";
Wieso eigentlich nicht const char*? Oder const char * const ? Das Array (und auch der Zeiger darauf) wird doch nicht verändert, wieso nicht als const deklarieren?

Anonsten muss ich sagen ist das wirklich kein allzu gutes beispiel...
@soufian: Wo hast du das denn her?
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

Re: [C++] C-strings und zeiger

Beitrag von soufian88 » Sa Sep 12, 2009 9:13 am

@soufian: Wo hast du das denn her?
Das Beispiel ist vom Buch C++ von A bis Z. C++ von A bis Z
Das Buch ist immer und immer wieder empfohlen worden und bei Amazon Kundenbewertung hat es auch 6 Sterne bekommen.
C ( Durchschnittlich ) C++ (am Lernen)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: [C++] C-strings und zeiger

Beitrag von Xin » Sa Sep 12, 2009 12:06 pm

soufian88 hat geschrieben:
@soufian: Wo hast du das denn her?
Das Beispiel ist vom Buch C++ von A bis Z. C++ von A bis Z
Das Buch ist immer und immer wieder empfohlen worden und bei Amazon Kundenbewertung hat es auch 6 Sterne bekommen.
Was ich bisher von dem Buch gesehen habe, fand ich auch nicht schlecht.

Ich habe es aber nicht durchgenommen, ich fand die Themenauswahl gut.

Die Sache mit dem Using sehe ich etwas lockerer, würde mir aber dennoch auch überlegen, wozu Namespaces gedacht sind und dass der ausführliche Gebrauch von using namespace diesen Gedanken eigentlich ad absurdum führt.
Für mal eben ein Testprogramm halte ich es aber für in Ordnung.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
soufian88
Beiträge: 288
Registriert: So Jan 18, 2009 1:01 pm

Re: [C++] C-strings und zeiger

Beitrag von soufian88 » So Sep 13, 2009 11:07 am

Wieso eigentlich nicht const char*? Oder const char * const ? Das Array (und auch der Zeiger darauf) wird doch nicht verändert, wieso nicht als const deklarieren?
Der Autor erwähnt die Const-Initialisierungen auf darauf folgenden Seiten ,dass bei Zeigern, die mit einer Zeichenkette initialisiert werden , dass diese immer Const sein sollen. ;)


mfg soufian
C ( Durchschnittlich ) C++ (am Lernen)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: [C++] C-strings und zeiger

Beitrag von Xin » Mo Sep 14, 2009 10:59 am

soufian88 hat geschrieben:
Wieso eigentlich nicht const char*? Oder const char * const ? Das Array (und auch der Zeiger darauf) wird doch nicht verändert, wieso nicht als const deklarieren?
Der Autor erwähnt die Const-Initialisierungen auf darauf folgenden Seiten ,dass bei Zeigern, die mit einer Zeichenkette initialisiert werden , dass diese immer Const sein sollen. ;)
char const * ist schon korrekt.

'char const *' wird meistens 'const char *' geschrieben. Ich verwende die Schreibweise mit dem nachgefügten const, weil sie nach dem Datentyp sowieso nachgefügt werden muss: z.B. 'char const * const'. Die meisten Compiler und Bücher schreiben jedoch das const vorab.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: [C++] C-strings und zeiger

Beitrag von Kerli » Mo Sep 14, 2009 11:17 am

Xin hat geschrieben:char const * ist schon korrekt.
Eigentlich ist das mit dem 'const' ganz einfach. 'const' ist immer linksbindend, dh. es gilt für das was links daneben steht. 'char const*' ist also ein Zeiger auf ein konstantes char und char * const ein konstanter Zeiger auf ein veränderbares char. Und jetzt gibt es noch eine weitere Regel die besagt, dass wenn links vom 'const' nichts mehr steht, dann gilt es für das was rechts folgt.
'const char*' hat sich wahrscheinlich deshalb eingebürgert weil es mehr dem natürlichen Wortfluss entspricht...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: [C++] C-strings und zeiger

Beitrag von Xin » Mo Sep 14, 2009 11:31 am

Kerli hat geschrieben:Und jetzt gibt es noch eine weitere Regel die besagt, dass wenn links vom 'const' nichts mehr steht, dann gilt es für das was rechts folgt.
Du beschreibst hier exakt den Fehler im Konzept: Alle Fälle sind abgedeckt, aber... "Und jetzt gibt es noch eine weitere Regel...".

Eine Programmiersprache ist nicht dafür da, um künstlerische Freiheit im Wortfluss zu fördern, die wenigsten schreiben schließlich Gedichte in C++. ;-)
Kerli hat geschrieben:'const char*' hat sich wahrscheinlich deshalb eingebürgert weil es mehr dem natürlichen Wortfluss entspricht...
Erkläre das mal einen Franzosen. ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: [C++] C-strings und zeiger

Beitrag von Kerli » Mo Sep 14, 2009 5:34 pm

Xin hat geschrieben:Eine Programmiersprache ist nicht dafür da, um künstlerische Freiheit im Wortfluss zu fördern, die wenigsten schreiben schließlich Gedichte in C++. ;-)
Das nicht, aber universell einsetzbare Kapitel die man in beliebiger Reihenfolge zu einem sinnvollen Buch kombinieren kann. So in der Art hat es zumindest ein Professor von uns beschrieben. Und er hat die Vorlesung mit einem Gedicht begonnen :P
Xin hat geschrieben:Erkläre das mal einen Franzosen. ^^
Ich hab nicht allzu oft mit programmierenden Franzosen zu tun, und damit ich sagen kann ob das ihrem natürlichen Wortfluss entspricht ist mein Wissensstand der französischen Sprache wohl etwas zu niedrig :)
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Antworten