【发布时间】:2011-07-31 06:10:19
【问题描述】:
我正在尝试将一个简单的 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
}
}
谁能告诉我如何在 python 中完成同样的事情? (完全看不懂的部分是“z += 3”)
我知道 python 中没有指针。 (至少不像 C)但问题是我不知道 C 指针究竟做了什么,因此不能在 python 中实现。
【问题讨论】:
-
....也很重要。 -
客户端通过将地址(指针)传递给 z 的第一个元素来调用该函数。 z+=3 移动到 z[0]、z[1]、z[2] 和 z[3]。
-
另外,
z= z[3:]可以被认为是远程等效的,除了它需要更多的时间,移动内存并且以后没有与z-= 3等效的事实(缺少的元素不是没有了)。
标签: python c arrays math pointers