首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-04 
sizeof(j)/sizeof(*j)什么意思?// const int ia[] is equivalent to const int* ia// size is passed expl

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…

热点排行