我有3个问题:
Q1。当我们使用new运算符创建对象时,语法如下:
pointer_variable = new data-type //To create an object
pointer_variable = new data-type(value); //To create an object with value
pointer_variable = new data-type[size]; //To create an array
为什么 LHS 上总是有一个指针变量?
Q2。声明和分配带有和不带有运算符的指针有什么区别new?
考虑以下代码片段和输出来理解问题:
int a = 10, b=20;
int *p;
p = &a;
int *q = new int;
q = &b;
cout<<"P is: "<<p<<" : "<<*p<<endl<<"Q is: "<<q<<" : "<<*q<<endl;
上述代码的输出:
P is: 0x61ff04 : 10
Q is: 0x61ff00 : 20
Q3。当我们说,new当我们在编译时不知道数组的大小时,我们可以在运行时为数组动态分配内存。我们可以在没有new运算符的情况下执行此操作,如下所示:
cout<<"Enter the size of an array"<<endl;
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
for(int i=0;i<n;i++)
{
cout<<arr[i];
}
那么究竟需要new对数组使用运算符是什么?