多维数组的长度

问题描述 投票:0回答:1

如果

int len = sizeof(arr)/sizeof(int);

给我们一个数组的长度,

sizeof(arr)
是数组的字节大小,
sizeof(int)
给我们数组的数据类型的大小,

int rowDimension = sizeof(mat)/sizeof(mat[0]);

sizeof(matrix)
sizeof(matrix[0])
给我们什么?

arrays c multidimensional-array
1个回答
2
投票

sizeof(matrix)
sizeof(matrix[0])
给我们什么?

int matrix[3][5];  // Assume sizeof(int) --> 4

sizeof(matrix)
是对象/类型的大小(以字节为单位)。 (60)

sizeof(matrix[0])
是对象/类型元素的大小(以字节为单位)。 (20,因为数组元素类型是
int[5]
)。

 60/20 --> 3, the number of "rows" in the matrix.

size_t
更适合使用
int
来调整尺寸。
sizeof
返回一个
size_t
.


找到“列”

 //             5       =        20         /       4 
 size_t columnDimension = sizeof matrix[0] / sizeof matrix[0][0];

()
在调整类型大小时需要,但不是对象。

© www.soinside.com 2019 - 2024. All rights reserved.