2024-06-01 22:13:26 发布
网友
我是一个python00b,冒着问一个基本问题的风险,来吧。在
出于各种原因,我不想从Python移植到C代码中。在
在C代码中,我有一些代码可以在下面复制。在
float table[3][101][4]; int kx[6] = {0,1,0,2,1,0}; int kz[6] = {0,0,1,0,1,2};
我想要一个等效的Python表达式,用于下面的C代码:
有人能给我一个Python中的等价表达式吗?在
因为Python没有指针或指针算法,所以没有与C代码直接等价的代码。相反,重构代码以使用括号表示法索引到表中。在
table[kx[i]][0][lx] = 3
大概相当于C
注意,在Python表中不是连续的。尤其是,虽然这在C语言中可能有效:
px[10] = 3; // Bounds violation!
这将在Python中索引错误:
table[kx[i]][0][lx + 10] = 3
事情是这样的。。。在python中不能执行指针,因此这里显示的内容不是“可移植”的,因为:
float *px, *pz; < this doesn't exist int lx = LX; /* constant defined somewhere else */ int lz = LZ; /* constant defined somewhere else */ px = &(table[kx[i]][0][0])+lx; pz = &(table[kz[i]][0][0])+lz; ^ ^ ^ | | | + + + Therefore none of this makes any sense...
您要做的是在多维数组table中有一个指向偏移量的指针,因为在python中无法做到这一点,所以您不希望逐字“移植”此代码。在
table
按照这个逻辑,你用px和pz在做什么?这是您在尝试和移植时需要理解的代码。在
px
pz
因为Python没有指针或指针算法,所以没有与C代码直接等价的代码。相反,重构代码以使用括号表示法索引到表中。在
大概相当于C
^{pr2}$注意,在Python表中不是连续的。尤其是,虽然这在C语言中可能有效:
这将在Python中索引错误:
事情是这样的。。。在python中不能执行指针,因此这里显示的内容不是“可移植”的,因为:
您要做的是在多维数组
table
中有一个指向偏移量的指针,因为在python中无法做到这一点,所以您不希望逐字“移植”此代码。在按照这个逻辑,你用
px
和pz
在做什么?这是您在尝试和移植时需要理解的代码。在相关问题 更多 >
编程相关推荐