使用for循环和指针打印float数组

时间:2015-07-26 02:46:13

标签: c++ pointers

我从数组和指针的CPP开始。

我试图打印一个浮点数组,但我已经越过了浮点数组。

一旦我到达终点,如何停止打印浮点数组?

// all about arrays and pointers

#include <iostream>

using namespace std;

int main (int argc, char * argv []) {

    float inputs1 [] = { 12 };
    float inputs2 [] = { 12 , 4 };

    cout << "sizeof(inputs1)" << sizeof(inputs1) << endl;
    cout << "sizeof(inputs2)" << sizeof(inputs2) << endl;

    float *it = inputs2;
    cout << *it << endl;
    it++;
    cout << *it << endl;
    cout << endl;

    cout << "sizeof(inputs1): " << sizeof(inputs1) << endl;
    cout << "sizeof(inputs2): " << sizeof(inputs2) << endl;
    cout << "start address: " << &inputs2 << endl;
    cout << "end address: " << &inputs2[sizeof(inputs2)] << endl;

    for (float *it2 = inputs2; it2!=&inputs2[sizeof(inputs2)]; it2++) {
        cout << "it2 " << it2 << endl;
        cout << "*it2 " << *it2 << endl;
    }
}

1 个答案:

答案 0 :(得分:4)

sizeof返回其参数的大小,以字节为单位 - 其中元素的数量 1

要获取元素数量,您必须将sizeof(inputs1)除以sizeof(inputs1[0])

1 除非元素各为一个字节,例如char