C / C ++ int [] против int * (указатели против обозначения массива). В чем разница?

Я знаю, что массивы в C - это просто указатели на последовательно хранимые данные. Но какие различия подразумевают разницу в обозначениях [] и *. Я имею ввиду во ВСЕХ возможных контекстах использования. Например:

char c[] = "test";

если вы предоставите эту инструкцию в теле функции, она выделит строку в стеке, пока

char* c = "test";

будет указывать на сегмент данных (только для чтения).

Можете ли вы перечислить все различия между этими двумя обозначениями во ВСЕХ контекстах использования, чтобы сформировать четкое общее представление.

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

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