Golang의 포인터
2402 단어 codequalitypointersgovariables
포인터는 특정 메모리 주소(변수 이름 = 16진 주소)에 데이터를 저장하는 데 사용되는 특수 변수입니다. 메모리 주소는 16진수 형식으로 제공됩니다(0x50c108 등과 같이 0x로 시작).
포인터의 의미를 설명하기 전에 변수가 무엇을 의미하는지 논의할 것입니다. 변수는 데이터가 저장된 메모리 위치의 이름입니다. 저장된 데이터에 액세스하려면 해당 데이터가 저장된 위치 또는 주소를 알아야 합니다.
이전 단락을 이해했다면 이 단락을 건너뛰십시오. 당신이 이해하지 못한다면 집에 설명을 가져올 때 걱정할 필요가 없습니다. 'abia'는 데이터를 저장하는 메모리 주소(0x50c108)를 보유하는 변수 이름이고, 메모리 주소는 사람이 쉽게 기억하지 못하는 16진수 코드이므로 "abia"와 같은 명명된 읽을 수 있는 규칙을 사용하여 메모리의 주소를 나타냅니다. 데이터 "nnamdi"가 있는 곳. "nnamdi"를 찾으려면 메모리 주소 또는 "nnamdi"값을 보유하는 변수를 알아야 합니다.
프로그램에 포인터가 필요한 이유는 무엇입니까?
우리는 예를 들어 이것을 더 시연할 것입니다. 이 예에서는 변수 a와 b 안에 16진수를 저장할 것이며 값 유형은 int입니다. 아래 코드 조각은 다른 변수의 메모리 위치를 가리키지 않기 때문에 포인터가 아니며 아래와 같이 a와 b에 16진수 값만 저장합니다.
// Variables storing the hexadecimal values
package main
import "fmt"
func main() {
// storing the hexadecimal
// values in variables
a := 0xFF
b := 0x9C
// Printing out variable values
fmt.Printf("Type of variable a is %T\n", a)
fmt.Printf("Value of a in hexadecimal is %X\n", a)
fmt.Printf("Value of a in decimal is %v\n", a)
fmt.Printf("Type of variable b is %T\n", b)
fmt.Printf("Value of b in hexadecimal is %X\n", b)
fmt.Printf("Value of b in decimal is %v\n", b)
}
산출:
Type of variable a is int
Value of a in hexadecimal is FF
Value of a in decimal is 255
Type of variable b is int
Value of b in hexadecimal is 9C
Value of b in decimal is 156
포인터는 다른 변수의 위치나 주소를 가리킬 뿐만 아니라 메모리에서 해당 변수가 있는 값을 가져오는 방법을 찾습니다. 변수의 위치가 동일한 변수의 주소와 다른지 묻고 싶을 수 있습니다. 변수, 대답은 아니오? 변수 이름은 긴 16진수 주소 지정 체계를 나타내는 쉬운 방법일 뿐입니다.
포인터 선언 및 초기화
이 블로그 게시물의 2가지 중요한 키워드는 다음과 같습니다.
다음은 다른 변수의 주소 값을 저장하는 포인터 선언의 예입니다.
포인터 선언의 예
var y string = "String Y"
//Innitialized x with memory address of y
x := &y
fmt.Printf("Prints the value of y", *x) // String Y
fmt.Printf("Prints the address of x", &x) // 0xc000100018
fmt.Printf("Prints the address of y", x) // 0xc000010230
Reference
이 문제에 관하여(Golang의 포인터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/techagentng/pointers-in-goland-2n9k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)