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

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

char c[] = "test";

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

char* c = "test";

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

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

37
задан Sergey K. 19 July 2012 в 08:44
поделиться