Obliczanie wartości zmiennych x, y, z

0

Jakie będą wartości zmiennych x, y, z po wykonaniu tego programu, zakładając, że zmienna i została umieszczona pod adresem 2 340 000?

Nie rozumiem tej zaznaczonej linijki kodu, mógłby mi ktoś wytłumaczyć co to oznacza? Z resztą sobie chyba dobrze poradziłem.

int i, *pl, x, y, z

i = 7; //do zmiennej i przypisujemy wartość 7
pl = &i; //do zmiennej pl przypisujemy adres zmiennej i, która ma wartość 7
*pl = 1; // do wskaźnika pl, który przyjmuje wartość 7 przypisujemy teraz wartość 1;
x = y; // do zmiennej x przypisujemy wartość 1
y = (int)pl <<<<------------------------- TEGO NIE ROZUMIEM :(
z = *pl // do zmiennej z przypisujemy wartość 1
1

To, czego nie rozumiesz to rzutowanie. Google przybliży temat.

*pl = 1; // do wskaźnika pl, który przyjmuje wartość 7 przypisujemy teraz wartość 1;

Zły opis, wskaźnika nie modyfikujesz i nie ma on wartości 7.

x = y; // do zmiennej x przypisujemy wartość 1

Źle, przypisujesz y o niezdefiniowanej wartości, co jest UB.

0
kq napisał(a):

To, czego nie rozumiesz to rzutowanie. Google przybliży temat.

dzięki, nie wiedziałem, że to tak wygląda...

*pl = 1; // do wskaźnika pl, który przyjmuje wartość 7 przypisujemy teraz wartość 1;

Zły opis, wskaźnika nie modyfikujesz i nie ma on wartości 7.

faktycznie, masz rację :)

x = y; // do zmiennej x przypisujemy wartość 1

Źle, przypisujesz `y` o niezdefiniowanej wartości, co jest UB.

tu mój błąd, powinno być x = i;

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