C语言——计算数组长度

C语言——计算数组长度C 语言计算一维数组长度二维数组长度多维数组长度 c 语言数组长度

大家好,欢迎来到IT知识分享网。

如何计算 C 语言数组长度

数组特点

  • 长度固定(变长数组除外)
  • 数组每个元素占用的字节数相同即: sizeof(a[0]) = sizeof(a[1]) = sizeof(a[n])

一维数组

数组定义

int array[5] 
  • sizeof(array) 整个数组占用的内存
  • sizeof(array[0]) 一个数组元素占用的内存

一维数组长度计算

一维数组长度计算公式: l e n g t h = 整 个 数 组 占 用 的 内 存 一 个 数 组 元 素 占 用 的 内 存 length = \frac{整个数组占用的内存}{一个数组元素占用的内存} length=

length = sizeof(array) / sizeof(array[0]); 

二维数组

数组定义

int array[5][6] 
  • sizeof(array) 整个数组占用的内存
  • sizeof(array[0]) 一行数组占用的内存
  • sizeof(array[0][0]) 一个数组元素占用的内存

二维数组行数计算

二维数组行数计算公式: l e n g t h = 整 个 数 组 占 用 的 内 存 一 行 数 组 占 用 的 内 存 length = \frac{整个数组占用的内存}{一行数组占用的内存} length=

length = sizeof(array) / sizeof(array[0]) 

二位数组列数计算

二维数组行数计算公式: l e n g t h = 一 行 数 组 占 用 的 内 存 一 个 数 组 元 素 占 用 的 内 存 length = \frac{一行数组占用的内存}{一个数组元素占用的内存} length=

length = sizeof(array[0]) / sizeof(array[0][0]) 

多维数组

三维数组

以三维数组为例

第一维数组长度

length = sizeof(array) / sizeof(array[0]) 

第二维数组长度

length = sizeof(array[0]) / sizeof(array[0][0]) 

第三维数组长度

length = sizeof(array[0][0]) / sizeof(array[0][0][0]) 

N 维数组计算公式

类比上面公式,计算数组第 N 维长度

l e n g t h = s i z e o f ( a r r a y [ 0 ] [ 0 ] ) N − 1 s i z e o f ( a r r a y [ 0 ] [ 0 ] [ 0 ] ) N length = \frac {sizeof(array[0][0])_{N-1}} {sizeof(array[0][0][0])_{N }} length=sizeof(array[0][0][0])Nsizeof(array[0][0])N1

计算示例

带入到二维数组

  • 第一维长度
    l e n g t h = s i z e o f ( a r r a y ) s i z e o f ( a r r a y [ 0 ] ) length = \frac{sizeof(array)}{sizeof(array[0])} length=sizeof(array[0])sizeof(array)
  • 第二维长度
    l e n g t h = s i z e o f ( a r r a y [ 0 ] ) s i z e o f ( a r r a y [ 0 ] [ 0 ] ) length = \frac{sizeof(array[0])}{sizeof(array[0][0])} length=sizeof(array[0][0])sizeof(array[0])

示例代码

#include <stdio.h> int main(int argc, char *argv[]) { 
    int test_array1[10]; int test_array2[7][8]; int test_array3[3][4][5]; long value; value = sizeof(test_array1) / sizeof(test_array1[0]); printf("一维数组长度:%ld \r\n", value); value = sizeof(test_array2) / sizeof(test_array2[0]); printf("二维数组行数:%ld \r\n", value); value = sizeof(test_array2[0]) / sizeof(test_array2[0][0]); printf("二维数组列数:%ld \r\n", value); value = sizeof(test_array3) / sizeof(test_array3[0]); printf("三维数组第一维长度:%ld \r\n", value); value = sizeof(test_array3[0]) / sizeof(test_array3[0][0]); printf("三维数组第二维长度:%ld \r\n", value); value = sizeof(test_array3[0][0]) / sizeof(test_array3[0][0][0]); printf("三维数组第三维长度:%ld \r\n", value); return 1; } /* 结果输出 一维数组长度:10 二维数组行数:7 二维数组列数:8 三维数组第一维长度:3 三维数组第二维长度:4 三维数组第三维长度:5 */ 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125284.html

(0)
上一篇 2025-09-28 19:00
下一篇 2025-09-28 19:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信