黑马程序员技术交流社区

标题: 关于数组的问题 [打印本页]

作者: 超越自己    时间: 2014-8-29 09:23
标题: 关于数组的问题
  1.   int length = sizeof(scores) / sizeof(int);
复制代码

这句代码 ,到现在还卡在这 想不明白  , 谁能通俗易懂的给我说下,谢谢了。  
作者: 夜半风    时间: 2014-8-29 10:07
同求 看不懂
作者: x65396731    时间: 2014-8-29 11:16
这个貌似和数组没有关系
是说计算字符长度是用sizeof,其中sizeof里可以放数值或者类型,计算的结果是一个int类型的变量(这里定义这个变量叫length).
作者: claud0623    时间: 2014-8-29 11:19
就是求数组元素的个数嘛,sizeof(score)表示整型数组所占字节数,sizeof(int)则表示整型元素所占字节个数,两者一除就是数组元素的个数了,这样通俗易懂吗?
作者: 王振宇351x    时间: 2014-8-29 13:52
  1. int length =    //  int变量成员的个数
  2. sizeof(scores)    // 整个数组占用的字节数 = 每个成员int变量占用的字节数*int变量的个数
  3. / sizeof(int);    //  每个int变量占用的字节数
复制代码

作者: MeryStyle    时间: 2014-8-29 16:08
sizeof()方法用来计算字符长度,其中形参即可以是数值(此时计算的是整个变量占用的字节数)也可以是类型(此时计算的是该类型的每个变量占用的字节数),所以,很明显,他们的商就是该类型变量的个数。
作者: SailY    时间: 2014-8-29 16:25
这段代码什么意思我就不多说了,其他人说的很清楚,可能你不知道为什么要这样写,这样写的好处是:可移植性好,int型在有的系统里占2个字节,有的系统里占4个字节,不管在哪个系统里,不管int是几个字节,你这段代码都是对的,都是算得数组个数,所以就不需要因为系统的不同而修改代码了
作者: 超越自己    时间: 2014-8-30 00:09
王振宇351x 发表于 2014-8-29 13:52

看这个貌似有点懂了
作者: 超越自己    时间: 2014-8-30 07:24
claud0623 发表于 2014-8-29 11:19
就是求数组元素的个数嘛,sizeof(score)表示整型数组所占字节数,sizeof(int)则表示整型元素所占字节个 ...

明白了  果然大神  谢谢啦!
作者: himym2005    时间: 2014-8-30 15:29
典型的求数组个数的,数组长度除以每个元素的长度
作者: ❤如止水之絕境    时间: 2014-8-30 22:03
那个scores应该是一个int数组吧,sizeof计算出这个数据长度,再求出int所占的字节数,两者相除就得到了数据长度。因为数组是int型的嘛。但是这个长度是包含 '\0'的,若求实际长度,还得再减一




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2