A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 超越自己 中级黑马   /  2014-8-29 09:23  /  1403 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.   int length = sizeof(scores) / sizeof(int);
复制代码

这句代码 ,到现在还卡在这 想不明白  , 谁能通俗易懂的给我说下,谢谢了。  

10 个回复

倒序浏览
同求 看不懂
回复 使用道具 举报
这个貌似和数组没有关系
是说计算字符长度是用sizeof,其中sizeof里可以放数值或者类型,计算的结果是一个int类型的变量(这里定义这个变量叫length).
回复 使用道具 举报
就是求数组元素的个数嘛,sizeof(score)表示整型数组所占字节数,sizeof(int)则表示整型元素所占字节个数,两者一除就是数组元素的个数了,这样通俗易懂吗?
回复 使用道具 举报
  1. int length =    //  int变量成员的个数
  2. sizeof(scores)    // 整个数组占用的字节数 = 每个成员int变量占用的字节数*int变量的个数
  3. / sizeof(int);    //  每个int变量占用的字节数
复制代码
回复 使用道具 举报
MeryStyle 来自手机 中级黑马 2014-8-29 16:08:20
地板
sizeof()方法用来计算字符长度,其中形参即可以是数值(此时计算的是整个变量占用的字节数)也可以是类型(此时计算的是该类型的每个变量占用的字节数),所以,很明显,他们的商就是该类型变量的个数。
回复 使用道具 举报
SailY 中级黑马 2014-8-29 16:25:14
7#
这段代码什么意思我就不多说了,其他人说的很清楚,可能你不知道为什么要这样写,这样写的好处是:可移植性好,int型在有的系统里占2个字节,有的系统里占4个字节,不管在哪个系统里,不管int是几个字节,你这段代码都是对的,都是算得数组个数,所以就不需要因为系统的不同而修改代码了
回复 使用道具 举报

看这个貌似有点懂了
回复 使用道具 举报
claud0623 发表于 2014-8-29 11:19
就是求数组元素的个数嘛,sizeof(score)表示整型数组所占字节数,sizeof(int)则表示整型元素所占字节个 ...

明白了  果然大神  谢谢啦!
回复 使用道具 举报
典型的求数组个数的,数组长度除以每个元素的长度
回复 使用道具 举报
那个scores应该是一个int数组吧,sizeof计算出这个数据长度,再求出int所占的字节数,两者相除就得到了数据长度。因为数组是int型的嘛。但是这个长度是包含 '\0'的,若求实际长度,还得再减一
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马