C Арифметика указателя в Python

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

Я застрял в C-указателях.

Существует функция, которая принимает unsigned long int указатель и добавляет свои значения к некоторым переменным в while-loop:

uint32_t somename(const uint32_t *z) { while(....) { a += z[0] b += z[1] c += z[2] z += 3 } } 

Может кто-нибудь, пожалуйста, скажите мне, как выполнить то же самое в python? (Часть, которую я совсем не понял, это «z + = 3»)

Я знаю, что в python нет указателей. (по крайней мере, не так, как C). Но проблема в том, что я не знаю, что именно делают C-указатели, и поэтому это не может произойти в python.

2 Solutions collect form web for “C Арифметика указателя в Python”

Аналогичный фрагмент кода в Python может быть:

 def somename(z): i = 0 while (....): a += z[i] b += z[i+1] c += z[i+2] i += 3 

В C, z работает как индекс массива, за исключением того, что он начинается с любого адреса начала массива, а не начинается с 0. В Python нет аналогичной концепции, поэтому вам нужно явно использовать индекс списка ,

Все, что внутри (....) также нуждается в модификации. Я оставлю это как упражнение для вас, так как оно не указано в вопросе.

Что означает z += 3 в основном продвигает указатель на 3 элемента вниз. Скажем, у вас есть указатель на массив в C, называемый lst который содержит [1, 2, 3, 4] . Указатель lst указывает на первый элемент такой, что *lst эквивалентен lst[0] . Кроме того, *(lst+1) эквивалентно lst[1] .

  • Есть ли структура в Python, похожая на C ++ STL-карту?
  • RSA шифрует / расшифровывает между C и python
  • Случайное применение ошибки сегментации в функциях расширения python в c ++
  • Как преобразовать список Python в массив C с помощью ctypes?
  • Ошибка перегрузки оператора оболочки Cython C ++ ()
  • Обработка полиморфных исключений: как уловить исключение подкласса?
  • Как получить графический интерфейс Python для вызова генетического алгоритма, написанного на C
  • ImportError: динамический модуль не определяет функцию init, но это делает
  • Как создать имя файла с конечным периодом в Windows?
  • API Python C: вызов функции Python с аргументами, переданными по ссылке
  • Как сохранить имя класса C ++ без изменений с Cython?
  • Python - лучший язык программирования в мире.