Я новичок в C ++ и в программировании в целом. Я запутался, когда узнал понятия указатель и массив. В качестве примера взят int*p = arr; int arr[]={5,1};
. Я узнал, что arr
также является указателем.
p(a pointer) arr[0]
the thing it stores: [first element address: 601] [5]
its memory : 501 601
address(just make
some fake address)
However, arr(the pointer)
[first element address: 601]
601
Обычно указатель должен иметь адрес, отличный от массива. Однако arr
, как указатель на первый элемент, имеет тот же адрес, что и первый элемент. Поэтому я чувствую растерянность. И мне интересно, потому ли это, что блок памяти arr[0]
разделен на две части: одну часть для arr[0]
и одну часть для указателя arr
, чтобы они имели один и тот же адрес в памяти.