回复 楼主 洪夜馨
同意楼上,就是全部元素占用内存大小除以一个元素占用内存大小,当然就是元素的个数了。下面附上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 其元素类型的结果,即可求出数组元素的个数。