[求助]一道求数组元素个数的题
已知一数组叫oneArray其元素个数 nArrayLength = sizeof(oneArray)/sizeof(oneArray[0]);
我知道 sizeof() 是求一种数据类型在内存中占的字节数,但不知道为什么搞不懂这行代码,
还希望有哪位朋友能详细指点一下,谢了!……
sizeof(oneArray)求这个数组占的字节数,sizeof(oneArray[0])求第一个数组元素占的字节数,
两个相除就是数组元素个数。
很简单的问题,就是数组名和指针的区别:
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!
例如:
double oneArray[10];
double* ptr;
ptr=oneArray;
则sizeof(oneArray)=80=sizeof(double)*10;
而sizeof(ptr)=4;(这里指32位操作系统,地址是4个字节)
所以说,数组名不是指针