c - 这两种数组声明有什么区别?

标签 c arrays for-loop

我想知道这些数组的这两个声明之间的区别,一个是这样定义的(double array[a][b][c][d]),另一个是不同(双数组[a*b*c][d])

double weight4_5[LAYER4][LAYER5][LENGTH_KERNEL][LENGTH_KERNEL];
double weight5_6[LAYER5 * LENGTH_FEATURE5 * LENGTH_FEATURE5][OUTPUT];

如果我想使用 for 循环将值加载到这两个数组,我该怎么做?

最佳答案

第一个是 4 维数组。

  • 通过weight4_5[i][j][k][l]访问

第二个是二维数组。它是一个展平的数组。

  • 访问基本上是通过weight5_6[x][y]但是需要根据4D原始数组进行一些计算才能得到x的值。<
  • 您可以根据需要以多种方式组织它(例如,按行、按列等),其中一种方法是

    x= ((((i*LAYER5)+j)*LENGTH_FEATURE5)+k)
    y = l;
    

关于c - 这两种数组声明有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126277/

相关文章:

java - 循环错误打印表

c - 具有不同种子的PRNG序列会在C中重叠吗

c - RegEnumKeyEx 不能正常工作

javascript - 检查数组中的值是否与选择框的值相同?

javascript - 使用ajax(不使用jQuery)发送php数组会在服务器上产生错误数据

python - 计算递归方程的列表结果

审查c中的单词

c++ - 宏定义中的空 # 是什么意思?

javascript - 如何防止 JavaScript 中的 polyfill 枚举?

arrays - VB.NET - For Each 循环不改变类数组中的元素