C:二维数组与普通数组相同大小的区别

标签 c arrays multidimensional-array size memory-address

我想知道,如果给出以下声明:

int first[1][COLUMN_NUMBER];
int second[COLUMN_NUMBER];

这两个二维数组可以以相同或类似的方式访问。我的意思是:它们可以交换吗?我问这个是因为,由于升级,我想避免重构我之前编写的所有代码。

非常感谢。

最佳答案

根据 this piece of code ,应该没有区别。

#include <stdio.h>

int main(void) {
    int const COLUMN_NUMBER = 10;
    union {
      int first[1][COLUMN_NUMBER];
      int second[COLUMN_NUMBER];
      } u;
    u.first[0][5] = 3;
    printf("%d\n", u.second[5]);
    return 0;
}

关于C:二维数组与普通数组相同大小的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19514547/

相关文章:

c - 用c语言编写一个dispatch程序来运行Linux中的其他c程序

代码:: block ,进程终止,状态 2 意外 "("C 编程语言

C - 寻找质数

Javascript for 循环不循环遍历数组

javascript - 计算每个值在数组中有多少个对象

c - 为什么程序退出后rmdir会删除文件夹?(在Win7中使用Dev C++)

python - 重复 numpy 数组中的最后一列

c++ - 如何将动态分配的内存释放到结构内的数组?

javascript - 在mysql中用多维数组存储$_POST

java:比较二维数组的值与同一列的arraylist的值