포인터를 정의하는 방법은 다음 같습니다.
---------------------------------------------------------------------------------------------------
const 또는 var 포인터 이름 : * 포인터가 가리킬 데이터의 형태와 크기 = 할당할 초기 레퍼런스(주소) 값 또는 undefined
할당할 레퍼런스(주소) 초기 값 을 undefined 로 정의하면 초기 값을 설정하지 않고 나중에 값을 할당한다는 의미입니다.
포인터가 가리키는 값을 역참조(dereferencing) 할 때는 포인터 이름 .* 를 통해 가능합니다.
---------------------------------------------------------------------------------------------------
예시
var num1 : u8 = 5;
// 일반적인 변수 num1 을 만들고 숫자 5를 저장합니다.
var num1_pointer : * u8 = &num1;
// num1 을 가리키는 포인터를 만들고 num1 의 주소를 할당하였습니다.
// 이제 num1_pointer 는 num1 의 메모리 주소를 가리킵니다.
num1_pointer.* += 1;
// 이제 num1_pointer.* 를 통해 num1 의 값을 마음대로 바꿀 수 있습니다.
// 이제 num1 의 값은 1 증가 되었습니다.
std.debug.print(" num1: {} \n ", .{ num1 });
// " num1 : 6 " 이 출력됩니다.
'Zig' 카테고리의 다른 글
[Zig] 메소드(methods) (0) | 2024.03.21 |
---|---|
[Zig] 옵셔널(optionals) (0) | 2024.03.21 |
[Zig] 구조체(structs) (0) | 2024.03.21 |
[Zig] 열거형(enums) (0) | 2024.03.21 |
[Zig] 도달 불가능(unreachable) (0) | 2024.03.21 |