C语言 数组的问题,书上的例子,说a = sizeof(mu) / sizeof(mu[0])可以统计数组的元素个数,为啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 数组的问题,书上的例子,说a = sizeof(mu) / sizeof(mu[0])可以统计数组的元素个数,为啥?相关的知识,希望对你有一定的参考价值。

sizeof(mu) 是算出整个数组所占的空间大小(单位字节)

sizeof(mu[0]) 是算出数组中一个元素的大小
为什么要写成这样呢?
主要是这样写比较方便,下面就解释一下,首先要知道
char 1个字节 short 2个字节 int4个字节
对于不同类型(int,char,short)的数组,在元素个数相同的情况下,总体所占的大小肯定是不相同的,通常数组的做函数参数时也会传递长度,所以为了在代码尽可能少的变动情况下,尤其是程序框架之类的东西,这样写不仅方便而且简洁。
例:
int mu[10] 那么sizeof(mu)就是40,sizeof(mu[0])就是4
short mu[10] 那么sizeof(mu)就是20,sizeof(mu[0])就是2
char mu[10] 那么sizeof(mu)就是10,sizeof(mu[0])就是1
所以你应该能明白,另外,sizeof(mu[0])里面的0是可以写成1到9号元素的
因为数组的每一个元素大小相同
参考技术A mu是整个数组的长度,mu[0]是这个数组里面第一个元素的长度,也就是单位元素的长度,那么数组整个长度除于单位元素的长度,就是元素的个数了,这种用法很普遍,要记住。

以上是关于C语言 数组的问题,书上的例子,说a = sizeof(mu) / sizeof(mu[0])可以统计数组的元素个数,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

关于在C语言 声明带有一个变长数组参数的函数

C语言打印输出指针数组

c语言,break和continue语句.两个题 我看不懂 帮忙解析下吧 教科书上就写了例子 不解析。啥跳不跳出 跳哪

c语言 指针数组

C语言随机初始化数组

c语言的宏定义 if defined