python - Python 中的 C 指针算法

标签 python c 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
    }
}

有人可以告诉我如何在 python 中完成同样的事情吗? (完全没看懂的部分是“z += 3”)

我知道 python 中没有指针。 (至少不像 C)但问题是我不知道 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 中没有类似的概念,因此您需要显式使用列表索引。

(....) 中的内容也需要修改。我会把它留给你作为练习,因为它在问题中没有具体说明。

关于python - Python 中的 C 指针算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574159/

相关文章:

python - 在类中调用的 pygame.draw.rect() 函数不显示矩形

python - 导入 geopandas 时出错 OSError : Could not find lib c or load any of its variants []

python - python 中的 crontab

java - 逻辑帮助 - 按升序查找一系列元素

C:下标值既不是数组也不是指针

php - 如何将 php 创建的文本文件传递给 python 脚本进行处理?

c - 使用 cURL 和 C API 通过 http 提取动态数据的值

c - 在 C 中读取可变长度的字符串用户输入

c - C中scanf的返回值EOF

Python:如何将两个平面列表组合成一个二维数组?