Я пытаюсь увеличить значение в C и вернуть старое значение, и я делаю это с помощью указателя. Проблема в том, что новое значение по-прежнему равно 0, хотя я использую указатель.Увеличение содержания указателя
#include <stdio.h>
#include <stdlib.h>
int increment (int *mem) {
int tmp;
tmp = *mem;
*mem++;
return tmp;
}
int main() {
int a = 0;
printf("The old value of a is \t %d", increment(&a));
printf("The new value of a is \t %d", a);
}
Теперь, когда я запускаю этот метод, я получаю то же значение для a, что и 0; Я ожидал 1 во втором printf. Я не знаю, что я делаю неправильно здесь.
попробовать '(* MEM) ++ ', то читать о операторских старшинства – BeyelerStudios
Вы действительно должны узнать, как использовать отладчик, а также включить все предупреждения & отладочную информацию в вашем компиляторе, и читать больше о синтаксисе C. Не пишите какой-либо синтаксис, который вы не освоите (так что добавьте скобки столько, сколько хотите) –
да, вы правы – Bionix1441