Golang 포인터

soso·2023년 10월 17일
0

묘공노트

목록 보기
10/13

• 이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 14장 써머리입니다.


14-1. 포인터란

  • 메모리 주소를 값으로 갖는 타입
  • 포인터의 기본값 : nil (어떤 메모리 공간도 가리키고 있지 않음)
    • 변수 선언
    	var p *int    // * 붙여서 선언
    
        var a int
        p = &a    // 메모리 주소를 포인 터 변수 p에 대입. 주소를 갖는 것이기 때문에
        	     // p = a 라고 하면 오류 (타입이 다름)

14-2. 구조체를 생성해 포인터 변수 초기화

  • 구조체 변수를 별도 생성하지 않고 곧바로 포인터 변수에 구조체를 생성하고 주소를 초깃값으로 대입

  • new() 내장 함수 : 초기화 가능

p1 := &Data{}      // & 사용 초기화
var p2 = new(Data) // new() 사용 초기화

14-3. 인스턴스

  • 메모리에 할당된 데이터의 실체 (메모리 공간의 실체)
    	var data Data // 인스턴스
        var p *Data = &data
    
        // p 는 data 의 주솟값을 대입. 
        // 기존의 data 인스턴스를 가리킴. 복사가 아님.
        // 총 Data 인스턴스 개수는 1 개

0개의 댓글