typestar

Punteros en Zig

Un puntero de un solo elemento duplica un contador en el lugar; .* es la desreferencia.

const std = @import("std");

fn double(x: *i32) void {
    // x.* reaches through the pointer to the value.
    x.* *= 2;
}

pub fn main() void {
    var count: i32 = 21;
    double(&count);
    std.debug.print("doubled in place: {d}\n", .{count});

    const ptr = &count;
    std.debug.print("read through a pointer: {d}\n", .{ptr.*});
}

Cómo funciona

  1. x: *i32 es un puntero a exactamente un entero — sin aritmética, sin null.
  2. x.* *= 2 escribe a través del puntero; &count toma la dirección.
  3. Un const ptr igual puede leer ptr.* — el const es sobre la vinculación.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
311
Tokens
92
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 79 segundos.

Escribe este fragmento

Paso 2 de 3 en Opcionales y punteros; paso 11 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →