Gewinnen Sie € 300,-- easy! (Glaub ich)
-
Hallo ihr Lieben! (Nein ich bin nicht schwul >.<)
Nun, ich wäre euch sehr dankbar, wenn ihr mir die folgenden Fragen beantworten könnt:
1. (100€) Wieso:
#include <iostream> #define n std::endl //Testzwecken... int main(int argc, char** argv) { const char* sa[] = { "eins\n", "zwei\n"}; //Array const char** sp = sa; //Hier auch eine Frage: "Ist char** äquivalent zu char*[]?" std::cout << sa[1][0] << n; //Wieso kommt hier 'z' raus? Und wieso funktioniert das überhaupt? Es ist doch keine 2D-Matrix oder? }2. (200€) Zeigerarithmetik hab ich nicht so ganz verstanden, vielleicht ist einer so lieb und erklärt mir das:
const char* str4 = "ABC";//Check! const char* temp = str4; //Check! int sl; //Check! while(*temp++); //Check! sl = temp-str4-1; //NoCheck! temp == 4, str4 == 3. sl = 4 - 3 - 1... sl == 0?!Nochmals Danke, das mit den € 300,-- war ein Scherz, ich hoffe jemand nimmt das nicht so ernst^^
Gruß Fritz
-
IchBinGanzLieb _( schrieb:
Nochmals Danke, das mit den € 300,-- war ein Scherz, ich hoffe jemand nimmt das nicht so ernst^^
Nein, das sicher nicht, aber wenn dort nicht noch ein "(Glaub ich)" gestanden hätte, hätte ich den Thread nicht einmal angeschaut. Ich bin mir sicher, einige werden das nicht tun, weil sie solche Titel für Spam halten.
Abgesehen davon bringt es niemandem was, Titel ohne jegliche Aussagekraft über das Problem zu setzen. Also bemühe dich nächstes Mal bitte ein wenig.
Aber okay:
IchBinGanzLieb _( schrieb:
Hier auch eine Frage: "Ist char** äquivalent zu char*[]?"
Nein. Zeiger <-> Array. Hier gibts mindestens 57 Threads, in denen der Unterschied erläutert wurde...
IchBinGanzLieb _( schrieb:
Wieso kommt hier 'z' raus? Und wieso funktioniert das überhaupt? Es ist doch keine 2D-Matrix oder?
Weil du auf das erste Zeichen des zweiten C-Strings zu greifst. Nein, es ist kein statisches 2D-Array, aber ein Array auf
char*.IchBinGanzLieb _( schrieb:
//NoCheck! temp == 4, str4 == 3. sl = 4 - 3 - 1... sl == 0?!
Du erhöhst den einen Zeiger, subtrahierst den anderen davon - der Offset der Zeiger ist also 1. Und 1 - 1 gibt 0.
-
Gewinnen Sie € 300,-- easy!
lol
#define n std::endl //Testzwecken...lol