Указатель - это указатель , он указывает куда-то еще (как первый элемент массива).Компилятор не имеет никакой информации о том, куда он может указывать, или о размере данных, на которые он может указывать.
Массив - это, в общем, массив из нескольких последовательных элементов одного типа.Компилятор знает его размер, размер, который он всегда указывает (хотя иногда размер указывается только неявно).
Массив может быть инициализирован, но не назначен.Массивы также часто распадаются на указатели на их первый элемент.
Пример распада массива:
int array[10];
int *pointer = array; // Here the symbol array decays to the expression &array[0]
// Now the variable pointer is pointing to the first element of array
Массивы не могут быть естественным образом переданы в функцию.Когда вы объявляете аргумент функции, такой как int arr[]
, компилятор будет переводить его как int *arr
.
Вся эта информация и многое другое должны быть в любой хорошей книге, учебнике или классе.