C语言——计算数组长度
admin
2024-04-18 15:44:35
0

如何计算 C 语言数组长度

数组特点

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

一维数组

数组定义

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

一维数组长度计算

一维数组长度计算公式:length=整个数组占用的内存一个数组元素占用的内存length = \frac{整个数组占用的内存}{一个数组元素占用的内存}length=一个数组元素占用的内存整个数组占用的内存​

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

二维数组

数组定义

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

二维数组行数计算

二维数组行数计算公式:length=整个数组占用的内存一行数组占用的内存length = \frac{整个数组占用的内存}{一行数组占用的内存}length=一行数组占用的内存整个数组占用的内存​

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

二位数组列数计算

二维数组行数计算公式:length=一行数组占用的内存一个数组元素占用的内存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 维长度

length=sizeof(array[0][0])N−1sizeof(array[0][0][0])Nlength = \frac {sizeof(array[0][0])_{N-1}} {sizeof(array[0][0][0])_{N }}length=sizeof(array[0][0][0])N​sizeof(array[0][0])N−1​​

计算示例

带入到一维数组
length=sizeof(array)sizeof(array[0])length = \frac{sizeof(array)}{sizeof(array[0])}length=sizeof(array[0])sizeof(array)​

带入到二维数组

  • 第一维长度
    length=sizeof(array)sizeof(array[0])length = \frac{sizeof(array)}{sizeof(array[0])}length=sizeof(array[0])sizeof(array)​

  • 第二维长度
    length=sizeof(array[0])sizeof(array[0][0])length = \frac{sizeof(array[0])}{sizeof(array[0][0])}length=sizeof(array[0][0])sizeof(array[0])​

示例代码

#include 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
*/

相关内容

热门资讯

安卓系统短信隐藏了,隐私保护新... 你知道吗?在安卓系统的短信应用里,竟然隐藏了一个超实用的功能,那就是短信的隐藏功能!是不是听起来就有...
安卓10.8系统的手机,功能升... 你有没有发现,最近安卓手机界又掀起了一股热潮?没错,就是安卓10.8系统!这款系统可是让无数安卓用户...
苹果怎么游戏安卓系统,轻松实现... 你有没有想过,那些让人爱不释手的苹果游戏,竟然也能在安卓系统上畅玩?没错,就是那个我们平时用来打电话...
安卓系统版本低于4.3,那些被... 你知道吗?在手机的世界里,系统版本就像是汽车的引擎,决定了它的速度和性能。今天,咱们就来聊聊那些还在...
安卓改用自研系统,探索我国科技... 你知道吗?最近安卓系统在我国市场上掀起了一股小小的风波呢!不少手机厂商开始蠢蠢欲动,纷纷宣布要改用自...
安卓系统usb蓝牙驱动,安卓系... 你有没有遇到过这种情况:手机连接电脑时,突然发现安卓系统USB蓝牙驱动不见了,心里那个急啊!别慌,今...
壁纸慢慢显现安卓系统,揭秘安卓... 亲爱的读者,你是否也有过这样的体验:打开手机,屏幕上慢慢显现出一幅美丽的壁纸,瞬间心情都变得愉悦起来...
安卓系统平板剪切视频,打造个性... 亲爱的平板用户们,你是否有过这样的经历:看着一部精彩的电影或者一段有趣的视频,突然想把它剪成一段短视...
电脑改安卓单系统,一招轻松实现... 你有没有想过,你的电脑里装个安卓系统,是不是就能一边享受Windows的强大,一边玩安卓游戏呢?没错...
安卓开发转为系统应用,从安卓应... 你有没有想过,从安卓应用开发者转型到系统应用开发者,这中间的旅程会是怎样的呢?想象你手中握着的是整个...
修改系统时间 安卓版,随时间而... 手机时间总是不对劲?别急,我来教你如何轻松修改安卓版手机的系统时间,让你的手机时间永远精准!一、手机...
安卓系统如何防降级,守护设备安... 你有没有发现,安卓系统更新换代的速度简直就像小兔子一样跳跃呢?每次新系统一出,老系统就有点儿像被时间...
电脑版手机安卓系统,电脑版手机... 你有没有发现,现在的生活越来越离不开手机了?从早晨闹钟响起的那一刻起,手机就像是个贴心的伙伴,陪你度...
安卓系统更新速度排行,哪家厂商... 你有没有发现,手机更新系统就像换新衣一样,让人期待又有点小激动呢?今天,就让我带你一起看看安卓系统更...
安卓监控文件系统,技术原理与应... 你有没有想过,你的安卓手机里那些看似普通的小文件,其实可能藏着不少秘密呢?今天,就让我带你一探究竟,...
叶子导购系统 安卓版,轻松驾驭... 你有没有想过,逛商场时,是不是总希望能有个小助手,帮你快速找到心仪的商品呢?现在,有了叶子导购系统安...
安卓系统老是提示更新,背后的原... 手机里的安卓系统又跳出来提醒你更新了?是不是每次看到这个,心里就有点小烦躁呢?别急,今天就来聊聊这个...
安卓手机分身双系统,隐私与效率... 你有没有想过,你的安卓手机里可以同时拥有两个完全不同的世界?没错,就是安卓手机分身双系统!这可不是什...
安卓系统版本咋看,从初生到成熟 你有没有好奇过自己的安卓手机系统版本是啥?是不是觉得这个数字背后隐藏着无尽的秘密?别急,今天就来带你...
安卓平板安装微软系统,微软系统... 你有没有想过,你的安卓平板竟然也能装上微软的系统呢?是的,你没听错,就是那个我们熟悉的Windows...