簡體   English   中英

C中&指針的結果是什么?

[英]What is the result of &pointer in C?

以下行的結果是什么:

int* ptr;
printf("%x, %x\n", ptr, &ptr);

我知道ptr是內存中的一個地址,但什么是&ptr

&ptr將是ptr保存的內存位置的地址。本質上它是指向指針的指針。

它是包含原始內存位置地址的內存位置的地址(即,它是“指向指針的指針”)。

&ptr返回指針變量的地址...指向指針的指針。

這通常用於允許函數更改指針實際指向的位置。

ptr不僅僅是“記憶中的一個地址”。 ptr是一個左值 ,一個保存地址的內存中的對象。 內存中的每個對象都有自己的地址,無論它擁有什么。

由於ptr是內存中的對象,因此它也有自己的地址。 這個地址是什么時候你做什么你&ptr

指針只是對內存中某些數據位置的引用。 *指針為您提供存儲在該內存位置的值。 &運算符返回實際的內存地址,在這種情況下,它是一個指針。

在C中,指針只是存儲容器,其中包含一些其他數據塊的地址。 在這種情況下,ptr保存一些int的地址,它本身只是內存中的一些數據。 所以&ptr是保存某些int的地址的變量的地址。

&ptr只能存儲在int **var或雙指針變量中,因此&ptr只是包含另一個地址的ptr的地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM