建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组的首元素,输出第1、3、5个学生的数据。
#include <iostream> using namespace std; class student { public: student(int a,double b):num(a),score(b){}; void display() { cout<<num<<" "<<score<<endl; } private: int num; double score; }; int main() { student s[5]={student(12,98),student(1,88),student(2,96),student(4,86),student(7,99)}; student *p=s; for(int i=0;i<5;i+=2) (p+i)->display();//p随i增加后移2位 //for(int i=0;i<2;p=p+2;i++) 输出三个数,p每次后移2位 // p->display(); return 0; }可换成: //for(int i=0;i<2;p=p+2;i++) 输出三个数,p每次后移2位 // p->display();
建立一个对象数组存放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出学号。
#include <iostream> using namespace std; class student { public: student(int a,double b):num(a),score(b){};//数据成员初始化 int num; double score; }; int main() { student s[5]={student(12,68),student(1,88),student(2,96),student(4,86),student(3,79)}; void max(student *a); student *p=s;//p指向s数组 也可写成student *p=&s[0]; max(p); return 0; } void max(student *a)//找出最大值所在位置 { double max1=a[0].score; int t; for(int i=0;i<5;i++) { if(a[i].score>max1) { max1=a[i].score; t=i; } } cout<<a[t].num<<endl; }