0Pricing
Zig Academy · Урок

Указатели на несколько элементов [*]T

Обращайтесь к последовательности элементов.

«Указатели на несколько элементов [*]T» — бесплатный урок Zig Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Pointing at a Run

Sometimes a pointer addresses not one value but the start of a sequence of values laid out in memory. 🧱

The [*]T Type

A many-item pointer is written [*]T. The star inside the brackets means it points at an unknown number of T values in a row.

var run: [*]u8 = undefined;

No Length Attached

Unlike a slice, a many-item pointer carries no length. You alone must know how many elements are safe to touch.

Index Like an Array

You can index a many-item pointer with brackets, so run[2] reaches the third element by stepping forward in memory.

const third = run[2];

Pointer Arithmetic

Adding to a many-item pointer moves it by whole elements, so run + 1 points one T further along, not one byte.

const next = run + 1;

Single vs Many

A *T points at exactly one value and cannot be indexed; a [*]T points at many and supports indexing and arithmetic.

Where They Come From

Many-item pointers often appear when talking to C, which passes a bare pointer to a buffer with the length tracked separately.

No Bounds Checks

Because the length is unknown, indexing a many-item pointer is not bounds-checked. Reading too far is undefined behavior.

Prefer Slices

When you control the code, a slice []T is safer because it bundles the length. Reach for [*]T mainly at C boundaries.

From Pointer to Slice

Once you know the count, attach a length with ptr[0..n] to turn a many-item pointer into a safe, bounds-checked slice.

const view = run[0..n];

Sentinel Variants Exist

Zig also has sentinel-terminated forms like [*:0]u8, a pointer whose run ends at a known value such as a zero byte.

var cstr: [*:0]const u8 = "hi";

Quick Check

Compare a slice []T with a many-item pointer [*]T. What does the many-item pointer lack?

Recap

A many-item pointer [*]T addresses a run of values, supports indexing and arithmetic, has no length, and is best converted to a slice when possible. 🎯

Часто задаваемые вопросы

Урок «Указатели на несколько элементов [*]T» бесплатный?

Да — полный текст урока «Указатели на несколько элементов [*]T» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.

Чему я научусь в уроке «Указатели на несколько элементов [*]T»?

Обращайтесь к последовательности элементов. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Zig Academy?

Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Указатели на несколько элементов [*]T»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Zig Academy?

Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Указатели на один элемент с помощью *T
  2. Разыменование с помощью ptr.*
  3. Указатели на несколько элементов [*]T
  4. Константные указатели и выравнивание
← Назад к Zig Academy