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] .

Interesting Posts

Flask не получает данные из данных запроса jQuery

Python с использованием исключений для потока управления считается плохой?

Каков метод выполнения nl2br в Генши?

Python Сортировка многомерного массива на основе 2-го элемента Subarray

Вставка строки в список без разделения на символы

Проверка подлинности Django с пользовательской моделью с идентификатором электронной почты как уникальным ключом

Автоматическое преобразование вкладок pycharm в пространство

Различия в производительности между Python и C

Самый короткий Sudoku Solver в Python – Как это работает?

Можно ли указать свою дистанционную функцию, используя scikit-learn K-Means Clustering?

Включить openssl в приложении

Печатная версия GDB ImportError: нет модуля с именем «принтеры»

z3python: преобразование строки в выражение

глобальная переменная, определенная в основном скрипте, не может быть доступна функцией, определенной в другом модуле

Множественный выбор Kivy с флажками

Python - лучший язык программирования в мире.