C
Hallo,
o-ta schrieb:
hi.
habe folgenden code:
char strings[5][2]={{0,'a'},{1,'b'},{2,'c'},{3,'d'},{4,'e'}};
char *pStr = 0;
pStr = & strings;
Ist das überhaupt richtig?
Hast du es ausprobiert? Wenn ja, dann hätte sich dein Compiler beschweren müssen.
Merke: Der Bezeichner eines 1D-Arrays vom Typ T ist implizit in einen Pointer T* konvertierbar. Für Arrays mit N Dimensionen (N > 1) ist eine implizite Konvertierung des Array-Bezeichners nach (*T)[N - 1] möglich, aber nicht nach T*!. Siehe dazu auch: http://www.c-plusplus.net/forum/viewtopic-var-t-is-58906.html (C++-FAQ).
möchte jetzt via printf den Buchstaben 'b' angezeigt bekommen, aber unter benutzung des pointers. WIE geht das??
In C++ benutzt man normalerweise cout. Deswegen bekommst du von mir ein Beispiel mit selbigem :p. (Dieses Beispiel umzuschreiben, sollte aber nicht das Problem darstellen. Wenn doch: Frag nach :)).
int main()
{
char strings[5][2]={{0,'a'},{1,'b'},{2,'c'},{3,'d'},{4,'e'}};
char (*p)[2] = strings;
cout << "b = " << *(*(p + 1) + 1) << endl;
cout << "oder b = " << p[1][1] << endl;
cout << "oder b = " << (*(p + 1))[1] << endl;
//edit: Wie sieht wohl die noch verbleibende Möglichkeit aus? :-)
return 0;
}
Gruß, Caipi.