Подтвердить что ты не робот

Значение приращения int указывается указателем

У меня есть указатель int (т. int *count), на который я хочу увеличить целое число, на которое указывает оператор ++. Я думал, что позвоню:

*count++;

Тем не менее, я получаю предупреждение о сборке "результат выражения не используется". Я могу позвонить

*count += 1;

Но я хотел бы знать, как использовать оператор ++. Есть идеи?

4b9b3361

Ответ 1

++ имеет равный приоритет с *, а ассоциативность - справа налево. См. здесь. Это сделало еще более сложным, потому что хотя ++ будет связан с указателем, приращение применяется после оценки оператора.

Случае вещей:

  • Пошаговый прирост, помните значение адреса указателя после возрастания в качестве временного
  • Указание неинкрементного указателя на указатель
  • Применить указательный адрес указателя для подсчета, подсчет теперь указывает на следующий возможный адрес памяти для объекта его типа.

Вы получаете предупреждение, потому что на шаге 2 вы никогда не используете разыменованное значение. Как и @Sidarth, вам понадобится скобка, чтобы заставить порядок оценки:

 (*ptr)++

Ответ 2

Попробуйте использовать (*count)++. *count++ может увеличивать указатель на следующую позицию, а затем использовать косвенное (что непреднамеренно).