Прокомментировать код - C (СИ) (71472)

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

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

Добрый вечер! я хочу просто разобраться в логике работы данного когда. можете пожалуйста описать, что и как тут происходит? и что получается на выходе и почему
int m[] = {1, 2, 3, 4, 5};
int* p1 = m;
int* p2 = m;
 
p1 += 3;
++p2;
 
ptrdiff_t dp = p2 - p1;
int x = *p1;
int y = *p2;
 
std::cout << dp << x << y;

Решение задачи: «Прокомментировать код»

textual
Листинг программы
int m[] = {1, 2, 3, 4, 5}; //объявлен целочисленный массив и проинициализирован
int* p1 = m; //объявлено 2 указателя на этот массив
int* p2 = m;
 
p1 += 3;//тут передвигают указатели р1 на +3 и р2 на +1
++p2;
 
ptrdiff_t dp = p2 - p1;//тут для меня не "совсем простая арифметика над указателями", самому интересно
int x = *p1;// еще 2 указателя(поправьте, если не так!)
int y = *p2;
 
std::cout << dp << x << y;// похоже на вывод на консоль, но как-то не для Си

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

  1. Объявлен целочисленный массив и проинициализирован.
  2. Объявлено 2 указателя на этот массив.
  3. p1 += 3; передвигают указатели р1 на +3 и р2 на +1.
  4. ++p2;
  5. ptldiff_t dp = p2 - p1;.
  6. int x = *p1;.
  7. int y = *p2;.
  8. std::cout << dp << x << y;.

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


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

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

13   голосов , оценка 3.769 из 5