Операция разыменования в Rust | OTUS

Операция разыменования в Rust

Говоря об Unsafe-контексте в рамках низкоуровневого програvмирования на Rust, мы уже упоминали указатели. Но эта тема будет неполной, если не рассказать подробнее об операции разыменования *. С ее помощью разработчик может обратиться к значению по адресу, хранимому в указателе. Но обращение это должно осуществляться в блоке unsafe:

7-20219-f3afe0.png

Далее, задействуя полученное таким образом значение, вы сможете присвоить его другой переменной:

8-20219-544a40.png

При этом важно отметить, что указатель вернет значение того типа, на объект которого он указывает. В нашем случае указатель num_pointer представляет указатель на объект типа i32, в результате чего операция разыменования вернет значение типа i32.

Кроме того, применяя указатель, мы сможем менять значение по адресу, который в этом указателе хранится:

9-20219-9f0489.png

Важно понимать, что если мы желаем менять значение в памяти, на которую указатель указывает, это должен быть изменяемый, а не константный указатель, так как последний изменить значение не позволяет. Ну и последний момент заключается в том, что при выполнении операции меняется значение не самого указателя (он все так же хранит адрес в памяти), а значения, которое хранится по этому адресу.

7-20219-984cb2.png

По материалам https://metanit.com/rust/tutorial/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто