C++中new用法疑问

来源:百度知道 编辑:UC知道 时间:2024/07/16 11:59:39
#include "iostream.h"
main()
{int num;
cout<<"请输入数组长度";
cin>>num;
int *data=new int[num];
for(int i=0;i<num;i++)
{cout<<"请输入第"<<i+1<<"个元素值";
cin>>data[i];
}
cout<<"所有数组元素为"<<endl;
for(i=0;i<num;i++)
cout<<data[i]<<endl;
delete[] data;
return;
}
疑问:
int *data=new int[num];
data是一个指向int型的指针吗,如果是的话为什么可以这样用cout<<data[i]<<endl;
data[i]表示的是什么?变量?指针?

data是指向int型变量的指针。
data[i]这个表达式中有[]运算符,
data[i]等效于*( data + i )。
所以data[i]表示的是int型变量。

int *data = new int[num]申请一个连续的num个int型变量,并返回头指针。
即*data = data[0]