C++s[0]=&s1什么意思,下面有代码......

class Student{private: int id; string name; string sex; string grade; string major;public: int display(); Student(); Student(int i, string n, string s, string g, string m);Student::Student(){ id = 0; name = ""; sex = ""; grade = ""; major = "";}Student::Student(int i, string n, string s, string g, string m){ id = i; name = n; sex = s; grade = g; major = m;}int Student::display(){ cout << "学号:" <<id<< " "; cout << "姓名:" <<name<< " "; cout << "性别:" <<sex<< " "; cout << "年级:" <<grade<< " "; cout << "专业:" << major << " " << endl;}int main(){Student *s[100];Student s1(130201, "小明", "男", "13级", "计算机科学与技术");s[0] = &s1;s[0]->display();}Student *s[100];是什么?怎么理解?s[0]=&s1;怎么理解?这样有什么用?跟地址有关吗?s[0]->display();怎么理解?怎样执行打印功能?s[0]跟display()又怎样的联系?求详细解答,谢谢
2026年09月26日 13:12
有1个网友回答
网友(1):

Student *s[100] 定义一个Student类对象指针数组,数组s的元素时只想Student类对象的指针

s[0]=&s1 是把Student类对象s1的地址赋值给s数组的第一个元素

s[0]->display() 因为这时候s[0]中存储的是s1的地址,这就是通过s1指针调用s1的display()函数,相当于s1.display(),这样就调用了display()函数来打印了