Podać wartość wyrażeń jeśli q=&X[3]:

0

Witam, mam pytanie odnośnie tego programu
#include <iostream>
using namespace std;
int main() {
int n = 10;
int x[n];
int *q;
q = &x[7];
cout << (uintptr_t)q << "\n";
cout << (uintptr_t)x << "\n";
cout << q-x; // po skompilowaniu wynik tego działania to 7, nie mam pojęcia czemu, myślałem, że wyjdzie różnica między adresami. Proszę o pomoc
}

1

Załóżmy przykładowy kod:

a - b;

Gdzie a i b to wskaźniki.
Różnica pomiędzy tymi dwoma wskaźnikami daje ilość elementów ile można byłoby tam zmieścić.

Gdybyś odjął adresy które są wyświetlane to powinno Ci wyjść 28 bajtów, jeżeli podzielisz to przez rozmiar int - 4 bajty wychodzi 7.

0

Serdeczne dzięki, wszystko jest teraz dla mnie jasne. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1