указатели и многомерные массивы [дубликаты]

Possible Duplicate:
How do I use arrays in C++?
Is 2d array a double pointer?
Two dimensional arrays and pointers

Я знаю, что это очень простой вопрос, но никакие поиски в Google не прояснили это для меня. Вот почему я размещаю это здесь. В с ++ рассмотрим объявлениеint x[10];

Это одномерный массив, где x является базовым указателем, то есть содержит адрес первого элемента массива. Такx дает мне этот адрес и*x дает первый элемент.

аналогично для декларации

 int x[10][20];

какая переменнаяx Вот. Когда я делаю

 int **z = x;

компилятор говорит, что не может конвертироватьint (*)[20] вint **. И почемуcout<<x; а такжеcout<<*x; дать такое же значение ?? А также, если я объявлю массив указателей как

 int *p[10];

тогда есть ли разница междуx а такжеp (по своим типам) потому что когда кто-то заявляетint x[10] а такжеint *p тогда действительно назначитьx вp но это не так в случае двумерных массивов? Зачем? Может ли кто-нибудь объяснить это мне или предоставить хороший ресурсный материал по этому вопросу.

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

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