У меня есть этот многомерный массив:
char marr[][3] = {{"abc"},{"def"}};
Теперь, если мы встретим выражение *marr
по определению (ISO / IEC 9899: 1999), оно говорит (и я цитирую)
Если операнд имеет тип «указатель на тип», результат имеет тип «тип»
, и мы имеем в этом выражении, что marr распадается на указатель на его первый элемент, который вв этом случае указатель на массив, поэтому мы получаем массив типа 3 размера, когда у нас есть выражение * marr.Поэтому мой вопрос заключается в том, почему, когда мы делаем (* marr) + 1, мы добавляем 1 байт только к адресу, а не к 3, который является размером массива.
Извините за мое невежество, я не очень яркий человек, язастрять иногда на тривиальные вещи, как это.
Спасибо за ваше время.