Python中的C指针算法

eym*_*men 4 c python arrays math pointers

我正在尝试将一个简单的C程序转换为Python,但由于我对C一无所知,而对Python有点了解,这对我来说很难.

我坚持使用C指针.

有一个函数接受unsigned long int指针并将其值添加到while循环中的某些变量:

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

有人可以告诉我如何在python中完成同样的事情吗?(我根本不理解的部分是"z + = 3")

我知道python中没有指针.(至少不像C)但问题是我不知道C指针究竟做了什么,因此不能在python中实现这一点.

Gre*_*ill 10

Python中类似的代码片段可能是:

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

在C中,z工作类似于数组索引,除了它从数组开头的任何地址开始,而不是从0开始.在Python中没有类似的概念,因此您需要显式使用列表索引.

内部的任何东西(....)都需要修改.我将把它作为练习留给你,因为它在这个问题中没有说明.