English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

온라인 도구

Golang 기본 튜토리얼

Golang 제어문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 병행

Golang 예외(Error)

O(파일 작업)

Go 언어 포인터는 함수 인자로 사용됩니다Go 프로그래밍 언어의 포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 또한, 그와 같이변수

  • 함수에 포인터를 전달하는 방식과 같습니다. 이 작업을 수행하는 방법은 두 가지가 있습니다:

  • 포인터를 생성하고 함수에 전달합니다

변수의 메모리 주소를 전달합니다

을 사용하여 포인터를 생성하고, 그것을 함수에 전달합니다다음 프로그램에서는 함수ptfx이 함수는 정수 타입의 포인터 인자를 가지고 있으며, 이 함수는 포인터 타입의 인자만을 받는다는 것을 의미합니다. 시작 시,x값을 포함100입니다. 하지만 함수 호출 후, 값이 변경됩니다:748그리고 출력에서 볼 수 있듯이.

// Go 프로그램은 포인터를 생성합니다
//그리고 함수에 전달합니다
package main
import "fmt"
//포인터를 인자로 받습니다
func ptf(a *int) {
    //인용
    *a = 748

func main() {
    //일반 변수
    var x = 100
    fmt.Printf("함수 호출 전 x의 값은: %d\n", x)
    //포인터 변수를 가져옵니다
    //주소를 할당
    var pa *int = &x
    //다음과 같은 방식으로 함수를 호출합니다
    //포인터를 함수에 전달합니다
    ptf(pa)
    fmt.Printf("함수 호출 후 x의 값은: %d\n", x)

출력:

함수 호출 전 x의 값은: 100
함수 호출 후 x의 값은: 748

변수의 주소를 함수 호출에 전달합니다

다음 프로그램을 고려해 보면, 우리는 변수에 대한 포인터를 생성하지 않았습니다.x의 주소를, 위 프로그램에서는pa를 통해 직접x의 주소를 함수 호출에 전달하여, 이 함수 호출은 위와 같은 방식으로 수행됩니다.

package main
import "fmt"
// int형 포인터를 인자로
func ptf(a *int) {
    *a = 748

func main() {
    var x = 100
    fmt.Printf("함수 호출 전 x의 값은: %d\n", x)
    //함수 호출을 통해
    //주소를 전달
    //변수 x
    ptf(&x)
    fmt.Printf("함수 호출 후 x의 값은: %d\n", x)

출력:

함수 호출 전 x의 값은: 100
함수 호출 후 x의 값은: 748

주의:도구명 단언 연산자(:=)를 사용하여 위 프로그램에서 변수와 포인터를 선언할 수 있습니다.