题目:建立一个对象数组,内放5个学生的数据(学号,成绩) ,用指针指向数组首元素,输出第1、3、5个学生的数据。
有大佬知道是哪里出了问题嘛?非常感谢!





问题挺多的。代码重写了一下,代码里加了注释,具体如下,ruyo如有帮助,请采纳一下,谢谢。
#include <iostream>
using namespace std;
class Student
{
public:
void fun1(int xh,int cj);
void fun2();
int mxh;
int mcj;
};
void Student::fun1(int xh,int cj)
{
mxh = xh;
mcj = cj;
}
void Student::fun2()
{
cout << mxh << "," << mcj;
}
int main()
{
Student s[4];
Student* p;
s[0].fun1(21,90);
s[1].fun1(45,89);
s[2].fun1(1,70);
s[3].fun1(34,92);
//s[4].fun1(67,75);//注意,前面只申请了4个原始,从0-3已经够4个了,这里就越界了
p = &s[0];
cout << (*p).mxh <<"," << (*p).mcj <<endl;
cout << (p+2)->mxh <<"," << (p+2)->mcj <<endl;
//cout << (p+4)->mxh <<"," << (p+4)->mcj <<endl; //这个越界了
getchar();
getchar();
return 0;
}