English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
주의:도구명 단언 연산자(:=)를 사용하여 위 프로그램에서 변수와 포인터를 선언할 수 있습니다.