| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:数组的大小为什么这样求的?
只看楼主 加入收藏
洪夜馨
Rank: 1
等 级:新手上路
帖 子:85
专家分:5
注 册:2009-6-12
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:3 
数组的大小为什么这样求的?
额,为什么是sizeof(number)/sizeof(int)?
看不懂啊。能解释下吗?

未命名.PNG (26.86 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 数组的大小 
2009-08-16 09:37
zinc
Rank: 2
等 级:论坛游民
帖 子:18
专家分:66
注 册:2009-7-28
收藏
得分:5 
sizeof(number)是数组占用内存的大小,sizeof(int)是整型的大小
2009-08-16 09:49
ly861014
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:66
专家分:177
注 册:2008-10-28
收藏
得分:14 
回复 楼主 洪夜馨

同意楼上,就是全部元素占用内存大小除以一个元素占用内存大小,当然就是元素的个数了。下面附上sizeof()的用法:

sizeof 操作符的作用是返回一个对象或类型名的长度,返回值的类型为 size_t(在cstddef头文件中定义的机器相关的无符号整型,该类型足以保存最大数组的长度),长度的单位是字节。sizeof 表达式的结果是编译时常量,该操作符有以下三种语法形式:
     sizeof (类型名);
     sizeof (表达式);
     sizeof 表达式;
将 sizeof 应用在表达式上,将获得该表达式的结果的类型长度:
     int i, *pi;
     // 下面三种形式都是求一个整型变量占用内存大小,单位是字节
     sizeof (int);
     sizeof (i);
     sizeof (*pi);   
将 sizeof 用于表达式时,并没有计算表达式的值。特别是在 sizeof *p 中,指针 p 可以持有一个无效地址,因为不需要对 p 做解引用操作,只需要知道它是一个指向int型变量的指针即可。
使用 sizeof 的结果部分地依赖所涉及的类型:
    对 char 类型或值为 char 类型的表达式做 sizeof 操作保证得 1。
    对引用类型做 sizeof 操作将返回存放此引用类型对象所需的内在空间大小。
    对指针做 sizeof 操作将返回存放指针所需的内在大小;注意,如果要获取该指针所指向对象的大小,则必须对指针进行引用。
    对数组名做 sizeof 操作等效于将对其元素类型做 sizeof 操作的结果乘上数组元素的个数。
因为 sizeof 返回整个数组在内存中的存储长度,所以用 sizeof 数组名的结果除以 sizeof 其元素类型的结果,即可求出数组元素的个数。
2009-08-17 07:28
ly861014
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:66
专家分:177
注 册:2008-10-28
收藏
得分:1 
回复 楼主 洪夜馨

另外,你编的这个max()有时候可能不能满足你要求,如果数组中全是负数,那返回值不就是0吗?显然不对啊,除非你确定数组中有非负数,如果不是这样的话,建议楼主改一下这个函数。
2009-08-17 07:33
快速回复:数组的大小为什么这样求的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015542 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved