注册 登录
编程论坛 C++教室

[求助]一道求数组元素个数的题

blueboy82006 发布于 2007-07-30 21:00, 1023 次点击
已知一数组叫oneArray
其元素个数 nArrayLength = sizeof(oneArray)/sizeof(oneArray[0]);
我知道 sizeof() 是求一种数据类型在内存中占的字节数,但不知道为什么搞不懂这行代码,
还希望有哪位朋友能详细指点一下,谢了!……

4 回复
#2
cy_forever2007-07-30 21:14

sizeof(oneArray)求这个数组占的字节数,sizeof(oneArray[0])求第一个数组元素占的字节数,
两个相除就是数组元素个数。

#3
blueboy820062007-07-30 21:31
回复:(cy_forever)sizeof(oneArray)求这个数组占的...
[QUOTE]sizeof(oneArray)求这个数组占的字节数[/QUOTE]
sizeof()不是求数据类型在内存中占的字节数吗??
怎么能求出数组占的字节数呢?不懂啊??
#4
blueboy820062007-07-30 21:32
我觉得那个东西除完了应该是 1 啊
#5
medicihophy2007-07-31 10:21

很简单的问题,就是数组名和指针的区别:
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;

(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;

(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!

例如:
double oneArray[10];
double* ptr;

ptr=oneArray;

则sizeof(oneArray)=80=sizeof(double)*10;
而sizeof(ptr)=4;(这里指32位操作系统,地址是4个字节)

所以说,数组名不是指针

1