Вопросы по массиву и указателю от новичка - PullRequest
0 голосов
/ 01 декабря 2019

Я новичок в 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, чтобы они имели один и тот же адрес в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...