Kiedy nazwa tablicy lub nazwa funkcji są „konwertowane” na wskaźnik? (w C)

1) Nieporozumienie :

Gdy tablica jest zadeklarowana w języku C, wskaźnik do pierwszego elementu tablicy jeststworzony (nazwa tablicy) niejawnie.(Czy tak? Nie sądzę!)

Pierwsze dwie linieto strona (chociaż nie jestem pewien co do poprawności informacji) to samo.

Jak widzieliśmy, kiedy deklarujemy tablicę, przydzielany jest ciągły blok pamięci dla komórek tablicy, a komórka wskaźnika (odpowiedniego typu) jest również przydzielana i inicjowana, aby wskazywać pierwszą komórkę tablicy.

Ale kiedy wyprowadzam zawarty adresw ten wskaźnik i adresz ten wskaźnik okazuje się taki sam. Więc myślę, że wskaźnik nie jeststworzony po wszystkim.

2) Odebrałem to odto pytanie.

W większości przypadków nazwy tablic są konwertowane na wskaźniki.

Czy ktoś może podać szczegółowe wyjaśnienieGDY kompilator postanawiakonwertować nazwa tablicy na wskaźnik iCZEMU?

PS: Proszę wyjaśnić to samoFunkcje. Także wto link, podano przykład, mówiąc o funkcjiint square(int,int), którykolwiek zsquare, &square, *square, **square odnosi się do tego samego wskaźnika funkcji. Możesz wytłumaczyć?

Edytuj: fragment kodu

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

Wyjście:

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

questionAnswers(4)

yourAnswerToTheQuestion