Операции с указателями и приоритет операторов в C

Фон

Просто поговорил с парнем из C сегодня, и мы не согласились на следующее:

int intgA[2] = { 1, 2 };
int intgB[2] = { 3, 5 };

int *intAPtr = intgA;
int *intBPtr = intgB;

Итак, когда мы делаем:

*intAPtr++ = *intBPtr++;
Мой анализ

Первый:

intBPtr увеличивается на единицу, теперь указывает на адрес 5. Затем, почтение, удерживая значение 5;

intAPtr также увеличивается на единицу, теперь указывает на адрес 2. Впоследствии ссылается и значение равно 2;

И, наконец:

2 заменяется на 5.

Итак, соответственно они: 5 и 5.

Его анализ

Значение*intBPtr сначала присваивается*intAPtr первый.

Следовательно, они становятся: 3 и 3.

Тогда оба*intAPtr а также*intBPtr увеличивается на единицу.

Итак, соответственно они становятся: 4 и 4.

Мое предположение

Я думал++ оператор имеет приоритет как над* а также=отсюда моё утверждение.

Например, если у нас было:

*intAPtr++; 

Результат должен быть 2, верно? Потому что мы сначала увеличиваем указатель, а затем разыменовываем.

Так почему в приведенном выше случае, как он утверждает, мы сначала присваиваем значениеintBPtr к стоимостиintAPtr и увеличивать значения в последний раз?

После того, как я принял все предложения, я запустил код в IDE, и результат подтверждает код @sujin:

Хотя это подтверждает, что я был прав по крайней мере с точки зрения приоритета:

Тот:*intAPtr++ = *intBPtr++;

intAPtr++ имеет более высокий приоритет, что приводит к:intAPtr увеличивает его адрес на 1.

Теперь указывает на: адрес 2.

И также:

intBPtr++ также увеличивается на 1 (адрес).

Теперь указываю на: адрес 5.

Тогда это*поворот:

Таким образом, оба получают разыменование (*) соответственно к 2 и 5.

Но проблема существует до сих пор, потому что назначение выше (=) вроде бы не состоялось.

Если бы это было так, то стало бы 5.

С нетерпением ждем дальнейшего просвещения.

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

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