可能是重复问题:
是否可以将二维数组视为连续的一维数组?
考虑以下代码:
int array2d[10][10];
int *array1d = array2d[0];
我从未听说过此实现无法工作,但通过array1d
访问和操作array2d
是否合法?标准的哪个部分允许这样做?标准中是否有任何防止实现在第二级数组之间插入额外空间或填充的内容(虽然不需要,但还是要问一下)?附加问题:是否有一种方法可以将
array2d
作为int[100]
访问,而不需要使用reinterpret_cast
或者C风格的转换?
int* array1d = array2d[0];
” 不是更加直接明了吗? - ildjarn&array2d[0]
对吧? - Eitan T