[c] C의 값에 대한 주소 또는 포인터 인쇄

나는 상당히 단순 해 보이는 것을하고 싶다. 나는 결과를 얻었지만 문제는 결과가 올바른지 알 방법이 없다는 것입니다.

저는 C로 작업하고 있으며 두 개의 포인터가 있습니다. 포인터의 내용을 인쇄하고 싶습니다. 포인터가 가리키는 값을 얻기 위해 포인터를 역 참조하고 싶지 않고 포인터가 저장 한 주소 만 원합니다.

나는 다음 코드를 작성했고 내가 알아야 할 것은 그것이 옳은지, 그렇지 않다면 어떻게 수정할 수 있는가이다.

내가 이것을 게시하는 동안 (그리고 그것이 정확하다는 것이 중요한 이유) 결국 포인터에 대한 포인터를 위해 이것을해야하기 때문입니다. 그건:



답변

당신이 가진 것이 맞습니다. 물론 emp1과 item1의 포인터 값이 동일하다는 것을 알 수 있습니다.


답변

포인터에 대한 포인터의 주소를 인쇄하려면 :

한 번 역 참조하고 두 번째 주소를 인쇄하려면 :

디버거를 사용하여 항상 확인할 수 있습니다. 리눅스를 사용 ddd하고 메모리를 표시하거나 그냥 일반인 gdb경우 메모리 주소를 볼 수 있으므로 포인터의 값과 비교할 수 있습니다.


답변

나는 이것이 가장 정확할 것이라고 믿습니다.

printf()가변 함수이며 올바른 유형의 인수를 전달해야합니다. 이 표준은 말한다 %p합니다 void *.


답변

기본 포인터 주소 표시를 이미 해결 한 것 같으므로 이중 포인터의 주소를 확인하는 방법은 다음과 같습니다.

다음 a을 수행 하여 이중 포인터의 주소에 액세스 할 수 있습니다 .


답변

결과:

ptr : 0xbfb4027f, 값 : A 및 주소 : 3216245375


답변

나는 특히 새로운 하드웨어와 함께이 위치에 있었다. 나는 당신 자신의 작은 16 진 덤프 루틴을 작성하는 것이 좋습니다. 데이터와 그들이있는 주소를 모두 함께 볼 수 있습니다. 그것은 좋은 습관이며 자신감을 키워줍니다.


답변