读书人

sizeof(j)/sizeof(*j)什么意思?该如何

发布时间: 2012-03-04 11:13:33 作者: rapoo

sizeof(j)/sizeof(*j)什么意思?
// const int ia[] is equivalent to const int* ia
// size is passed explicitly and used to control access to elements of ia
void printValues(const int ia[], size_t size)
{
for (size_t i = 0; i != size; ++i) {
cout << ia[i] << endl;
}
}
int main()
{
int j[] = { 0, 1 }; // int array of size 2
printValues(j, sizeof(j)/sizeof(*j));
return 0;
}

这里面的sizeof(j)/sizeof(*j)是什么作用啊 它怎么能算出数组的大小的呢?

[解决办法]
sizeof(j)求出整个数值占空间大小
sizeof(*j))求出第一个元素占空间大小
[解决办法]
总数组字节数 除以 单元字节数 ,自然就是数组大小了
[解决办法]
sizeof(j)表示的是整个数组的大小,j为指针指向数组
sizeof(*j)表示的是数组中第一个元素的大小,
相除,就为数组的元素个数了
[解决办法]
printValues(j, sizeof(j)/sizeof(*j));
与printValues(j, sizeof(j)/sizeof(j[0])); 效果一样
[解决办法]
请熟读关于C指针与数组的区别和共同点的介绍,不要头疼医头
[解决办法]
sizeof(j):整个数组的大小.
sizeof(*j):数组的第一个元素的大小.
sizeof(j)/sizeof(*j)等于整个数组中元素的个数
[解决办法]
好好看看书吧...无论那一本书..只要是关于C/C++的基础的都会讲这个的
[解决办法]

引用楼主 wangyangtao 的帖子:
// const int ia[] is equivalent to const int* ia
// size is passed explicitly and used to control access to elements of ia
void printValues(const int ia[], size_t size)
{
for (size_t i = 0; i != size; ++i) {
cout < < ia[i] < < endl;
}
}
int main()
{
int j[] = { 0, 1 }; // int array of size 2
print…

读书人网 >C++

热点推荐