Если я определяю новый массив (int) и увеличиваю разыменованный указатель на этот массив на 1, почему я получаю следующий результат?
int main()
{
int myArray[1024];
myArray[0] = 123;
myArray[1] = 456;
printf("%d \n", *myArray);
printf("%d \n", *myArray+1);
return 0;
}
Результат:
123
124
Почему следующее значение не 456? И почему вывод пропускает 3?
Вы ничего не увеличиваете. Увеличение будет означать, что вы меняете значение переменной, чего вы не делаете. Вы добавляете только 1 к некоторому значению, не изменяя это значение.



Приоритет операторов. * связывается более жестко, поэтому + 1 применяется к результату разыменования. *(myArray + 1) даст вам ожидаемый результат, 456. Как и более идиоматичное myArray[1].
Имеет смысл. ХОРОШО. Спасибо!
Я понятия не имею, что вы подразумеваете под «почему вывод пропускает 3?» Что
3?