der datentyp char
-
was bedeutet es wenn man sagt
der typ der variable ist char** oder char* oder char
wo genau liegt der unterschied und was verwendet man wann??
-
hast du so eine ähnliche frage nicht gerade woanders gestellt?
char ist ein datentyp für character, zeichen.
char* ist vom typ "zeiger auf char", also zeiger auf zeichen
char** ist vom typ "zeiger auf einen zeiger auf char", also ein zeiger, mit dem man auf einen char-zeiger zeigen kann.char x = 'a'; char y = 'b'; char *px = &x; //zeigt auf x //dereferenzieren: cout << *px << '\n'; //gibt "a" - den inhalt von x - aus. char ** ppx = &px; //zeigt auf px *ppx = &y; //ändert den inhalt von px. px zeigt jetzt auf y. cout << *px << '\n'; //gibt "b" - den inhalt von y - aus.
-
a) Pointer auf Pointer auf char
b) Pointer auf char
c) charZeh Mau
-
ich muss nochmal nachhaken sry
also wenn ich jetz zb habe
char* cptrptr[] = {"String1","String2","String3"}
jetz habe ich ich also ein char-Array und gleichzeitig einen Zeiger oder wie?
denn ich kann ja die Werte mit *cptrptr und cptrptr[0] ausgeben lassen..
versteh ich das jetz richtig?mfg
-
Hallo
Wird vielleicht deutlich wenn du dir überlegst wofür diese verschiedenen Datentypen eingesetzt werden können
- char : Genau ein Zeichen
- char* : eine Zeichenkette, ein C-String, aus mehreren Zeichen
- char** : ein Array von Zeichenketten, die jede für sich aus mehreren Zeichen besteht./Edit : Du must trennen zwischen der Instanz im Speicher und der Variable die du für den Zugriff darauf benutzt. In deinem Fall ist die Instanz ein Array, die Variable dafür ein Pointer.
bis bald
akari
-
Nein, du hast ein Array von Zeigern auf char. Du kannst cptrptr auch zu einem Zeiger auf einen Zeiger auf char casten.
-
Nanyuki schrieb:
Nein, du hast ein Array von Zeigern auf char.
Kannst du versuchen mir das an einem Beispiel klar zu machen?
ich blick da sonst wohl nicht durch
-
Ein Array aus Pointern sagt aus, dass es ein Array gibt, welches Pointer beinhaltet, und jeder zeigt auf einen bestimmten Speicherbereich.
Stell dir den Speicherbereich so vor, dass darin 3 Sätze abgelegt sind. In dem Array mögen jetzt drei Pointer sein, und jeder zeigt auf einen Satz.Zeh Mau
-
Unterscheide zwischen Zeigern wie int* und int** und Zeigern wie char* und char**.
Das sind durch die jeweilige Verwendung zwei Bereiche. Wenn man diese im Kopf vermischt, entsteht Unklarheit.Vielleicht hilft dir dieses kleine Skript weiter:
http://www.henkessoft.de/C++/C/arrays_pointer.htm