#include <iostream>
using namespace std;
class Student
{
public:
Student(int, int);
void max(Student* s);
private:
int num;
int scor;
};
Student::Student(int n, int s):num(n),scor(s){}
void Student::max(Student* s)
{
int i, max_num=0, max_scor=0;
for(i=0;i<5;++i)
if((s+i)->scor > max_scor)
{
max_scor=(s+i)->scor;
max_num=(s+i)->num;
}
cout<<"成績最高者的學號為"<<max_num<< endl;
}
int main()
{
Student s[5]=
{
Student(1, 78),
Student(2, 92),
Student(4, 81),
Student(4, 89),
Student(5, 68)
};
Student *p;
p=&s[0];這個指標p為什么賦予的是s0的地址啊
p->max(p); //max是類里的方法
return 0;
}
uj5u.com熱心網友回復:
p==&s[0]==s+0==s 指向第一個元素s+i==&s[i] 指向第i+1個元素
(s+i)->scor 第i+1個學生的成績
參考:
譚浩強《C程式設計》指標部分
《深入理解C指標》
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/59012.html
標籤:基礎類
