首页 > 试题广场 >

有以下程序 #include ...

[不定项选择题]
有以下程序
#include <iostream> 
using namespace std;
class A {
    float *p;  int n;
public: 
    A(int s){ 
        n=s;  
        p=new float[n];
    }
    ~A() {
        delete[] p;
    } 
    int Getn() const {  
        return n; 
    }
    float & operator[](int i) {  
        return _________;
    } 
    void Print() {
        int i; 
        for(i=0;i< this->Getn();i++) 
            {cout<<p[i];}  
    }
};
int main() {
    A a(5); 
    for (int i=0;i<a.Getn();i++) 
        a[i]=i+1; 
    a.Print(); 
    return 0;
}
运行结果是12345,请为横线处选择合适的程序(      )
  • p[i]
  • *p
  • p+i
  • *(p+i)
本题考察运算符重载以及数组。
由于数组名就是数组首元素的地址,所以p[i]=*(p+i),所以此题选AD
发表于 2019-10-09 20:15:05 回复(0)
关键是float &是按别名返回吧,所以返回的不是地址不能选C 
发表于 2023-08-03 11:41:29 回复(0)
考数组的特性,P[i]=*(P+i)
发表于 2021-03-25 08:55:35 回复(0)