在C语言中 我们有
int B[2][3] = { {1, 2, 3}, {4, 5, 6} };
它在内存中存储为
1 2 3 4 5 6
int A[6]={1,2,3,4,5,6};
它也存储在内存中
1 2 3 4 5 6
我们可以通过 A[i] 访问 A[6],其中 i=0,2,3.. 但我们无法通过 B[i ] 访问 B[2][3],其中 i=0,1,2.. 我知道还有其他技术可以访问多维数组的元素 但是我们不能像单维数组一样访问多维数组,为什么?
最佳答案
你可以解释它们:
int B[2][3] = { {1, 2, 3}, {4, 5, 6} };
int* b = ( void* )B ;
for( int i = 0 ; i < 6 ; i++ )
printf("%d " , b[i] ) ;
对于单个数组也是如此:
int A[6]={1,2,3,4,5,6};
int (*a)[3] ;
a = ( void* )A ;
for( int i = 0 ; i < 2 ; i++ )
for( int j = 0 ; j < 3 ; j++ )
printf("%d " , a[i][j] ) ;
关于c - 为什么不能像单维那样访问多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21376958/