Разбить объявление на:
int *A[10];
int B[10][10];
Вы можете видеть, что A[10]
на самом деле является массивом указателей , тогда как B[10][10]
является массивом целочисленных массивов. Причина, по которой вы не можете присвоить целое число B[1]
, заключается в том, что B[1]
должен иметь тип int[]
(массив), и вы не можете перезаписать его значением int
.
Назначение A[2]
работает, потому что вы просто указываете этот элемент массива на какое-то другое значение, в данном случае int
.