Разыменование указателей
Часть раздела Основы путешествия по GO на Coddy — урок 63 из 109.
Разыменование указателей (*) позволяет получить доступ к значению, хранящемуся по адресу памяти. Это называется «разыменованием» указателя.
Создайте переменную и указатель на неё:
func main() {
number := 42
pointer := &number
// Разыменуйте указатель, чтобы получить значение
value := *pointer
fmt.Println("Pointer:", pointer)
fmt.Println("Dereferenced value:", value)
}Вывод показывает как указатель, так и значение, на которое он указывает:
Pointer: 0xc000018030
Dereferenced value: 42Звездочка (*) перед переменной-указателем позволяет получить доступ к фактическому значению по этому адресу памяти.
Задание
НовичокВ этом испытании вы попрактикуетесь в разыменовании указателей в Go. У нас есть переменная message со строковым значением и указатель messagePtr, который на неё указывает.
Ваша задача — разыменовать указатель, чтобы получить доступ к значению, на которое он указывает, и вывести его на экран.
Шпаргалка
Используйте оператор «звездочка» (*) для разыменования указателя и доступа к значению по адресу памяти:
number := 42
pointer := &number
// Разыменование указателя для получения значения
value := *pointer
fmt.Println("Pointer:", pointer) // 0xc000018030
fmt.Println("Dereferenced value:", value) // 42Оператор * перед переменной-указателем обращается к фактическому значению, хранящемуся по этому адресу памяти.
Попробуйте сами
package main
import "fmt"
func main() {
// Вот наша строковая переменная
message := "Hello, pointers!"
// Это указатель на нашу переменную message
messagePtr := &message
// TODO: Разыменуйте messagePtr, чтобы получить значение, на которое он указывает,
// и сохраните его в переменной 'value'
value := ""
// Вывод результатов
fmt.Println("The pointer points to the value:", value)
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений