Ergebnis 1 bis 4 von 4

Thema: Zweidimensionales Array

  1. #1
    HTML Newbie
    Registriert seit
    08.06.2009
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Frage Zweidimensionales Array

    Hallo erstmal an alle!
    Ich bin neu hier und habe auch gleich mal eine frage C betreffend.

    Ich habe einige Verständnissprobleme im folgenden Quelltext:

    Code:
    char z[2][3] = {{'a','b','c'},{ '0','1','2'}},
         *p=*z, *q=*(z+1), *r=*(z+1)+2;
    1. // Wieso erhält *p hier den wert 1? bzw wieso weise ich die Adresse mit *z zu?? hab ich vorher bei einer Adresszuweisung noch nie gesehen o_O
    sollte das nicht mit *p=&z[0][0] geschehen??

    2.// Der Ausdruck (*(z+1))[1] ergibt in Zusammenhang mit dem obigen Quelltext auch 1.. wie kommt es dazu??

    Ich glaube mein Problem liegt darin dass ich mich mit mehrdimensionalen Arrays nicht gut auskenne bzw mit der Zeigerarithmetik in mehrdimensionalen Arrays...

    grüße

    johnny
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von The User (09.06.2009 um 01:25 Uhr) Grund: [code]-Verwendung!!! und bitte Majuskeln verwenden

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Zweidimensionales Array

    Mit der Form der Variablendeklaration stehst du dir im Wege.
    Übersichtlich sähe es so aus:
    Code:
    char z[2][3] = { {'a', 'b', 'c'},
                                       {'0', '1', '2'} };
    char* p = *z; // Zeiger auf char wird mit Zeiger auf char-Array, das wiederum Element eines Arrays ist, initialisiert
    char* r = (*(z + 1)) + 2; // z + 1: Array {'0', '1', '2'}, 2: Verweis auf zweites Element ( die 2)
    Also Schrittweise:
    Code:
    r = *(z + 1);
    Entspricht:
    Code:
    r = z[1];
    Dann:
    Code:
    r = *(z + 1) + 2;
    Entspricht:
    Code:
    r = z[1] + 2;
    Das heißt:
    Code:
    *r == z[1][2]
    Sollte klar sein.

    Viele liebe Grüße
    The User

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    08.06.2009
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Daumen hoch AW: Zweidimensionales Array


    Das freut mich!
    Super erklärt! Dankeschön!!

    Wenn ich das jetzt richtig verstanden habe ergäbe der ausdruck:
    Code:
    (*(z+1))[1]
    Code:
    (*(z+1)) // verweist auf array {'0','1','2'}
    und
    Code:
    [1] // verweist auf das zeichen 1
    also im endeffekt auf das element 1, nämlich die 1!

    Richtig?

    Vielen Dank nochmal!!

  4. #4
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Zweidimensionales Array

    Es verweist nicht darauf.
    Code:
    char* p1 = z[1] + 1 // Verweist auf das Zeichen '1'
    Und:
    Code:
    char c1 = z[1][1]; // Kopie des Zeichen '1'
    Und folgerichtig:
    Code:
    *p1 == c1
    Viele liebe Grüße
    The User

Ähnliche Themen

  1. mehrdimensionales array
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 23.02.2009, 15:05
  2. mehrdimensionales Array
    Von Jessica Heinze im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 21.05.2007, 23:14
  3. Array
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 20.02.2006, 19:48
  4. Array umkehren
    Von manthafahrer0_0 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 17.01.2006, 11:05
  5. Array (PHP)
    Von ST-O Keule im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 20.04.2005, 16:12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •