多维数组长度计算:sizeof(matrix)与sizeof(matrix[0])含义解析
二维数组中sizeof运算符的含义
假设matrix是标准的二维数组(例如声明为int matrix[M][N];这类形式),结合你给出的一维数组长度计算逻辑,这两个sizeof表达式的含义如下:
sizeof(matrix):表示整个二维数组所占的总字节大小,即数组中所有行、列元素加起来的总字节数。比如定义int matrix[3][4];,总字节数就是3 * 4 * sizeof(int)。sizeof(matrix[0]):表示二维数组中一行数组所占的字节大小,也就是单一行内所有元素的总字节数。还是以int matrix[3][4];为例,matrix[0]是包含4个int元素的一维数组,它的字节大小就是4 * sizeof(int)。
你给出的int rowDimension = sizeof(mat)/sizeof(mat[0]);,本质是用二维数组总字节数除以单一行的字节数,最终得到的就是二维数组的行数,和一维数组用总字节数除以单个元素字节数获取长度的逻辑完全一致。
内容的提问来源于stack exchange,提问作者Vicente Ferreira
相关产品推荐
相关产品推荐

