If-Abfrage mit Arrays



  • long arr2d[3][3] = { { 0,1,2 },{ 3,4,5 },{ 6,7,8 } };
    long arr2d2[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    if (&arr2d == &arr2d2);
    cout << "true" << endl; // Wird ausgegeben

    if (arr2d == arr2d2);
    cout << "true" << endl; // Wird ausgegeben

    int a=0, b=1;

    if (&a == &b)
    cout << " true as well" << endl; // Wird nicht ausgegeben

    Hallo,

    ich verstehe nicht wieso bei den zwei oberen Fällen, bei denen die Adressen der arrays verglichen werden die If-Bedingung erfüllt ist, wobei die arrays offensichtlich zwei unterschiedliche Adresse haben. Da das bei arrays gegen mein Verständnis schon funktioniert, habe ich weiter das Problem, wieso es dann bei integer-Variablen nicht funktioniert. Würde mich sehr freuen, wenn mir jemand erklären kann, was hier passiert.

    Viele Grüße



  • Erano1 schrieb:

    long arr2d[3][3] = { { 0,1,2 },{ 3,4,5 },{ 6,7,8 } };
    long arr2d2[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    if (&arr2d == &arr2d2);
    cout << "true" << endl; // Wird ausgegeben

    if (arr2d == arr2d2);
    cout << "true" << endl; // Wird ausgegeben

    int a=0, b=1;

    if (&a == &b)
    cout << " true as well" << endl; // Wird nicht ausgegeben

    Hallo,

    ich verstehe nicht wieso bei den zwei oberen Fällen, bei denen die Adressen der arrays verglichen werden die If-Bedingung erfüllt ist, wobei die arrays offensichtlich zwei unterschiedliche Adresse haben.

    Das liegt an dem Semikolon am Ende der Zeile, die mit if ... beginnt.



  • Was ein Fehler...vielen Dank!


Anmelden zum Antworten