const std = @import("std");
pub fn main() !void {
const simple_array = [_]i32{1, 2, 3, 4};
const string_obj: []const u8 = "A string object";
std.debug.print(
"Type 1: {}\n", .{@TypeOf(simple_array)}
);
std.debug.print(
"Type 2: {}\n", .{@TypeOf("A string literal")}
);
std.debug.print(
"Type 3: {}\n", .{@TypeOf(&simple_array)}
);
std.debug.print(
"Type 4: {}\n", .{@TypeOf(string_obj)}
);
}
Now, if we create a pointer to the simple_array object, then, we get a constant pointer to an array of 4 elements (*const [4]i32), which is very similar to the type of the string literal value. This demonstrates that a string literal value in Zig is already a pointer to a null-terminated array of bytes.
This paragraph starts by comparing pointer to simple_array and the string literal, but it suddenly begins reexplaining the string literal, which is already covered previously.
This paragraph starts by comparing pointer to simple_array and the string literal, but it suddenly begins reexplaining the string literal, which is already covered previously.