用于存储地址并稍后打印它们的指针数组

时间:2017-10-02 12:43:37

标签: c++ arrays pointers

我正在尝试使用一个指针数组来存储一些double值的地址,这些值也存储在一个数组中。

我的问题是,我能够打印地址但不能打印实际值。我想出了以下内容。当我尝试添加一个星号(cout<< * ptrArr [i]<< endl;)时,我收到一条错误消息,指出它不是指针。

const int size = 3;
double var[size] = { 0.0, 0.1, 0.2};
int *ptrArr = new int[size];

for (int i = 0; i < size; i++) {
  ptrArr[i] = (int)&var[i]; // assign the address of integer.
}

for (int i = 0; i < size; i++) {
  cout << "Value of var[" << i << "] = ";
  cout << ptrArr[i] << endl;
}

delete ptrArr;

1 个答案:

答案 0 :(得分:0)

你想要这个吗?使用double *数组来存储地址:

const int size = 3;
double var[size] = {0.0, 0.1, 0.2};
double **ptrArr = new double*[size];

for (int i = 0; i < size; i++) {
    ptrArr[i] = &var[i]; // assign the address of the double.
}

for (int i = 0; i < size; i++) {
    cout << "Value of var[" << i << "] = ";
    cout << *ptrArr[i] << endl;

    cout << "Address of var[" << i << "] = ";
    cout << ptrArr[i] << endl;
}