Golang 포인터 주소에 대한 학습 노트
3396 단어 Go
var n int = 100
fmt.Println(n) // 100
fmt.Println(&n) // 0xc0000167b0
&
Anpasand라고 하는데 변수가 메모리에 저장된 주소를 알 수 있습니다컴퓨터는 변수를 다음과 같은 이미지로 저장합니다.
각 메모리 영역에는 주소(16진수)가 할당됩니다.
따라서 주소와 값은 연관된 상태입니다.
Anpasand
&
를 사용하면'그 변수가 메모리에 있는 곳'을 알 수 있다.포인터는 주소를 저장하는 대상이다
var n int = 100
var p *int = &n
fmt.Println(p) //0xc00007c770
참조C 언어 포인터 문법의 요점, 손인이지만 이런 기록이 있다.포인터는 객체가 논리적 위치 정보로 액세스할 수 있을 때 참조할 수 있는 객체입니다.유명한 예로 C/C++의 메모리 주소를 표시하는 바늘을 들 수 있습니다.(ja.wikipedia.org)
In computer science, a pointer is a programming language object, whose value refers to (or "points to") another value stored elsewhere in the computer memory using its address.(en.wikipedia.org)
따라서 바늘을 주소로 삼아도 상관없다.(엄밀히 말하면 다르다...)
상기 코드
var p *int = &n
부분에서 변수 p는 int의 바늘 형식을 설명하고 변수 n의 주소를 저장합니다.이때
p
를 포인터라고 할 수 있습니다.*int
는 int용 주소를 저장하는'바늘형'이다.&
와 *
를 이용하면 알 수 있습니다.var n int = 100
fmt.Println(n) // 100
fmt.Println(&n) // 0xc0000167b0
fmt.Println(*&n) // 100
fmt.Println(&*&n) // 0xc0000167b0
번거롭지만 변수 앞에 *
를 놓으면 주소의 실체를 참조할 수 있다.
Reference
이 문제에 관하여(Golang 포인터 주소에 대한 학습 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yutaro50/items/f0084da59c15d1399bc5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)