그냥 초보자 질문을 물어보고 싶은 ... 여기C, 초급 질문
, 나는 포인터의 개념/기본을 이해하기위한 몇 가지 코드를 만들어 , 이유는 &*(&*d)
"b"의 주소 대신 "c"의 반송 주소입니까? 는 또한 &*(&*(&*(&*(&*d))))
과 같은 코드를 해봤지만, &*
가 서로 상쇄하기 때문에 그것은
감사에게 "C"의 많은 :
그냥 초보자 질문을 물어보고 싶은 ... 여기C, 초급 질문
, 나는 포인터의 개념/기본을 이해하기위한 몇 가지 코드를 만들어 , 이유는 &*(&*d)
"b"의 주소 대신 "c"의 반송 주소입니까? 는 또한 &*(&*(&*(&*(&*d))))
과 같은 코드를 해봤지만, &*
가 서로 상쇄하기 때문에 그것은
감사에게 "C"의 많은 :
를 반환 주소를 유지합니다. *
역 참조 d
이것은 c
의 값을 제공합니다. 그리고 &
은 c
의 주소 또는 d
의 값을 제공합니다.
간단한 규칙 : 값을 액세스/제공하려면 *
을 사용하고 &
을 사용하여 주소에 액세스/제공하십시오.
*
포인터를 역 참조하고 포인터가 가리키는 곳의 내용을 제공합니다. &은 기본적으로 주소입니다.
그들은 당신이 당신이 **d
을 필요 B에 대한 당신이 *d
을 필요 c를의 주소를 인쇄하려면 &*d
가 D 에 해당, 서로를 취소하고있는 데이터 당신이 필요로하는 것과 동일한 지점에서 사용하는 경우 ***d
.
x
이 변수 인 경우 &*x
은 정확히 x
과 같지 않습니다. 전자는 rvalue이고, 후자는 lvalue입니다. 반면에 *&x
은 항상 x
과 동일합니다. 두 표현식 모두 lvalues이므로.
물론 고마워요 – BobAlmond