int* A[n];
В первую очередь это массив, независимо от того, какой тип элемента. После применения указателя *, мы знаем, что A - это массив указателей int.
int (*A)[n];
Применяя скобки, указатель * имеет более высокий приоритет над массивом [] в этом случае. Тогда A - это, прежде всего, указатель, независимо от того, на что он указывает. После применения массива [] мы знаем, что A является указателем на массив из int.
int *(A[n]);
Скобки не изменит любой порядок старшинства, который будет влиять на массив [], поэтому удаление скобок будет int* A[n]
же получали методом в качестве 1-го корпуса.
Are array pointers?
Номер массив является структурой данных, которая выделяет пул памяти и хранят данные последовательно, где, как указатель указует на конкретный индекс в пуле памяти и ссылки на данных, хранящиеся в этой ячейке памяти.
Массивы могут * распадаться * на указатель на их первый элемент, но это не указатель. Например, когда вы передаете массив функции или используете арифметику указателя, это происходит. –
@JoachimPileborg Когда вы передаете массив функции *, параметром которой является указатель *. В основном используется имя массива для инициализации или назначения указателю, который делает это, а не переходу к функции. – juanchopanza
выучите правильное по часовой стрелке правило, и вы больше не будете путаться о сложных объявлениях. Http: // StackOverflow.com/a/31789222/3758484 – johnbakers