C ++ - 数组的计数与声明的大小无关

时间:2014-06-19 04:58:58

标签: c++ arrays

我写了以下代码块。但sizeof()返回的数组大小无关紧要。我有一个包含6个元素的数组,而sizeof()返回24作为数组的大小。

以下是代码:

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    int arr[6] = { 0, 5, 8, 32, 100, 41 };
    int arrSize = sizeof(arr);
    int i = 0;
    cout << "This is the Size of Array: " << arrSize << endl;
    /*
    for (i = 0; i < arrSize; ++i)
    {
      cout << arr[i] << endl;
    }   */

    return 0;
}

这是输出:

This is the Size of Array: 24

2 个答案:

答案 0 :(得分:2)

你应该做

int size = sizeof(arr)/sizeof(arr[0]);

这将找到数组的总大小,即。这里6 * 4 = 24然后将其除以单个元素大小,因此24/4 = 6

答案 1 :(得分:1)

sizeof给出 bytes

中数据的大小

6 * 4字节整数= 24 字节