1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Diesen Ausdruck erklären "1234"[3]-*"1234"

Discussion in 'Programmieren' started by Lycaner, Feb 17, 2013.

Thread Status:
Not open for further replies.
  1. Lycaner

    Lycaner Byte

    Kann mir bitte jemand diesen Ausdruck erklären?
    "1234"[3]-*"1234"
    Ich weiß, dass “1234“ ein Zeichenkette ist und [3] bedeutet, dass es dreimal vorkommt.
    Ich weiß auch das *“1234“ ein Zeiger ist aber
    WIESO KOMMT 3 ALS ERGEBNIS AUS?
     
  2. kazhar

    kazhar Viertel Gigabyte

    nö. das bedeutet, dass das 4. zeichen gemeint ist (zählweise beginnt bei 0)
    weil (x+3)-x gleich 3 ist?
     
  3. Lycaner

    Lycaner Byte

    weil (x+3)-x gleich 3 ist?

    Das ergibt für mich kein Sinn


    Das ergibt für mich kein Sinn.
    Nach der ersten Erklärung würde ich es so verstehen, 4 Zeichen- (Aber was?)
    Mathematisch gesehen 4 Zeichen-1 Zeichen=3 Zeichen???
    Oder was ist x bei deiner Formel?
     
  4. kazhar

    kazhar Viertel Gigabyte

    das ist ganz einfache zeigerarithmetik: du hast die zeichenkette '1234', die irgendwo im speicher herum liegt. z.b. an adresse 0x0012:3456.
    wobei jedes zeichen genau in einem byte drinnen ist. also liegt das ganze so im ram:

    0x0012:3456: '1'
    0x0012:3457: '2'
    0x0012:3458: '3'
    0x0012:3459: '4'
    0x0012:345A: #0

    du hast eine variable, nenne wir sie text, die diese zeichenkette enthält (das bedeutete: es ist in wirklichkeit ein zeiger, der auf das erste zeichen des strings draufzeigt!).
    diese "text" variable, der zeiger, enthält also den den wert 1193046. (=0x00123456 in hex).

    text[3] sagt dem rechner er soll den zeiger um 3 erhöhen (= der zeigt zeigt jetzt auf das 4. zeichen) und enthält also 1193049 (=0x123459). würdest du das ausgeben, würde "4" am bildschirm erscheinen.

    im endeffekt steht da also 1193049 - 1193046...
     
  5. Lycaner

    Lycaner Byte

    Ok Ich habe es verstanden. Vielen Dank kazhar

    Kann geschlossen werden.
     
  6. chipchap

    chipchap Ganzes Gigabyte

    Irgendwie glaube ich das nicht ...
    , wenn man sogar den Nick vergeigt.
     
  7. kazhar

    kazhar Viertel Gigabyte

    nimm mir doch nicht die schöne illusion ;)
     
Thread Status:
Not open for further replies.

Share This Page