题目:建立一个对象数组,内放5个学生的数据(学号,成绩) ,用指针指向数组首元素,输出第1、3、5个

题目:建立一个对象数组,内放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;
}