巧克力冰糕儿 2021-05-16 16:15 采纳率: 100%
浏览 2597
已结题

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

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

1条回答 默认 最新

  • qfl_sdu 2021-05-16 16:28
    关注

    问题挺多的。代码重写了一下,代码里加了注释,具体如下,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;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月13日
  • 已采纳回答 1月5日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用