Подтвердить что ты не робот

Является ли p = массив таким же, как p = & array [0]?

int numbers[20];
int * p;    

Являются ли два назначения ниже одного?

p = numbers;
p = &numbers[0];
4b9b3361

Ответ 1

Да, оба одинаковы.

В этом случае имя массива распадается на указатель на его первый элемент.

Следовательно,

p = numbers;       //Name of the array

совпадает с:

p = &numbers[0];   //Address of the First Element of the Array

Ответ 2

Да, они одинаковы. Когда имя массива вызывается в контексте rvalue, оно распадается на указатель на его первый элемент.

Ответ 3

numbers[0]    is equal to     *number    and equal to *(number+0)
numbers[x] = *(number+x)

so & (* (number + x)) = number + x, который является адресом x'th элемента