[Go] Go 언어 포인터(Pointer) 정리
2021. 1. 15. 23:20ㆍProgramming Language/Go
반응형
■ Go 언어 포인터
Go 언어는 C와 C++처럼 포인터 사용을 허용하여 메모리 주소에 직접 접근할 수 있게 하지만,
버그를 유발하기 쉬운 주소 값 연산은 허용하지 않는다.
포인터의 역할은 값에 접근하는 수단일 뿐이고, 포인터 변수가 가진 주소 값을 직접 변경할 수는 없다.
■ 포인터
1. '&' 포인터 연산자
'&' 포인터 연산자는 실제 데이터가 있는 메모리 공간의 값에 접근할때 사용한다.
예시) 숫자 10을 갖고 있는 변수의 메모리 공간의 값을 호출하시오.
* 결과는 메모리의 값을 나타내기 때문에 필자와 다를 수 있다.
pointer := 10
fmt.Println(&pointer)
/*
※ 출력 결과
0xc000012090
*/
2. '*' 포인터 연산자
'*' 포인터 연산자는 실제 데이터의 값에 접근할때 사용한다.
예시) data라는 변수와 data 변수의 주소값 즉, 메모리 공간의 값을 갖고 있는 address라는 변수가 있을 경우
address 변수를 활용하여 data의 값을 변경하여 호출하시오.
// 숫자 10을 갖는 변수
data := 10
// data의 메모리 공간의 값을 갖는 변수
address := &data
// data의 값을 10 에서 30으로 변경
*address = 30
fmt.Println(data)
/*
※ 출력 결과
30
*/
반응형
'Programming Language > Go' 카테고리의 다른 글
[Go] Go 언어 맵(Map) 정리 (0) | 2021.01.16 |
---|---|
[Go] Go 언어 배열(array) & 슬라이스(slice) 정리 (0) | 2021.01.16 |
[Go] Go 언어 조건문(if, switch) 정리 (0) | 2021.01.15 |
[GO] Go 언어 반복문(for) 정리 (0) | 2021.01.15 |
[Go] Go 언어 개발 환경 구축 (0) | 2021.01.13 |