Присвоить предыдущему элементу массива значение переменной - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Присвоить предыдущему элементу массива p значение переменной yj и переадресовать указатель pv на этот элемент. что не верно? *(pv-1)=yj;*pv--;

Решение задачи: «Присвоить предыдущему элементу массива значение переменной»

textual
Листинг программы
#include <stdio.h>
 
int main() {
    int array[] = {1, 2, 3, 4, 5};
    int yj = 7;
    int* pv = &array[1];
    printf("%p\n", pv);   // 0xbfa83838
    // array[0] теперь равно yj
    *(pv - 1) = yj;
    // теперь pv указывает на array[0]
    *pv--;
    printf("%p\n", pv);   // 0xbfa83834, как и должно быть (0xbfa83838 - sizeof(int))
    printf("%d\n", *pv);  // 7, как и должно быть
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлен массив array с пятью элементами и переменная yj со значением 7.
  2. Указатель pv инициализирован адресом array[1] (второй элемент массива).
  3. Выводится адрес pv (второй элемент массива) в формате printf(%p\n, pv);.
  4. Значение array[0] присваивается переменной yj с помощью оператора индиректного обращения к массиву *(pv - 1) = yj;.
  5. Указатель pv инкрементируется на 1 (*pv++;).
  6. Выводится адрес pv (теперь он указывает на array[1]) в формате printf(%p\n, pv);.
  7. Выводится значение *pv (теперь это array[1]) в формате printf(%d\n, *pv);.
  8. Возвращается 0, чтобы завершить программу. В результате выполнения этого кода, значение array[0] будет равно 7, а значение array[1] будет равно 2.

ИИ поможет Вам:


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

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы