주소 연산자

T 타입의 피연산자 x에 대해, 주소 연산 &xx에 대한 포인터 타입 *T를 생성한다. 이때 피연산자는 변수, 포인터 간접참조, 슬라이스의 인덱싱 연산, 주소로 지정할 수 있는 구조체 피연산자의 필드 선택자, 주소로 지정 가능한 배열의 인덱싱 연산 등과 같이 주소로 지정할 수 있는 것 이어야 한다. x가 (괄호와 함께 사용될 수도 있는) 합성 리터럴일 때는 주소 지정 가능 조건이 적용되지 않는다. x에 대한 평가가 런타임 패닉을 일으킨다면 &x의 평가 역시 같은 결과를 낳는다.

포인터 타입 *T의 피연산자 x에 대해, 포인터 간접 참조 *xx가 가리키는 T 타입의 [변수] (/Variables/)를 나타낸다. xnil이면, *x 평가시 런타임 패닉이 발생할 것이다.

&x
&a[f(2)]
&Point{2, 3}
*p
*pf(x)

var x *int = nil
*x   // 런타임 패닉 발생
&*x  // 런타임 패닉 발생

results matching ""

    No results matching ""