본문 바로가기
Zig

[Zig] 포인터(pointers)

by 코드쉼터 2024. 3. 21.

포인터를 정의하는 방법은 다음 같습니다.

---------------------------------------------------------------------------------------------------

 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