Когда имя массива или имя функции «конвертируется» в указатель? (в С)

1) Заблуждение:

Всякий раз, когда массив объявлен на языке C, указатель на первый элемент массивасозданный (имя массива) неявно.(Это? Я нене думаю!)

Первые две строчкиэтот страница (хотя я не уверен в правильности информации) заявляет то же самое.

Как мы видели, когда мы объявляем массив, для ячеек массива выделяется непрерывный блок памяти, и ячейка указателя (соответствующего типа) также выделяется и инициализируется так, чтобы указывать на первую ячейку массива.

Но когда я вывожу адрес, содержащийсяв этот указатель и адресиз этот указатель, они оказываются одинаковыми. Итак, я думаю, что указатель несозданный в конце концов.

2) Я взял это изэтот вопрос.

В большинстве случаев имена массивов преобразуются в указатели.

Может ли кто-нибудь дать подробное объяснениеКОГДА компилятор решаетперерабатывать имя массива в указатель, иЗАЧЕМ?

PS: Пожалуйста, объясните то же самое сфункции, Также вэтот ссылка, пример был приведен, говоря, что для функцииint square(int,int), любой из,,,square&square*square**square ссылается на тот же указатель функции. Вы можете объяснить?

Изменить: фрагмент кода

int fruits[10];
printf("Address IN constant pointer is %p\n",  fruits);
printf("Address OF constant pointer is %p\n", &fruits); 

Выход :

Address IN constant pointer is 0xbff99ca8
Address OF constant pointer is 0xbff99ca8

Ответы на вопрос(4)

Ваш ответ на вопрос