#include<iostream>
using namespace std;
struct xueshen
{
string name;
int score;
};
struct teacher
{
string name;
struct xueshen sarr[5];
};
void hain(teacher asarr[], int len)
{
string name = "ABCDE";
for (int i = 0; i < len; i++)
{
asarr[i].name = "teacher_";
asarr[i].name += name[i];
for (int j = 0; j < 5; j++)
{
asarr[i].sarr[j].name = "xueshen_";
asarr[i].sarr[j].name += name[j];
int random = rand() % 61 + 40;
asarr[i].sarr[j].score = random;
}
}
};
void shuc(teacher asarr[], int len) // 很好奇,asrra[]这个是地址传递进去的
{
for (int i = 0; i < len; i++)
{
cout << "老师的名字是: " << asarr[i].name << endl; //这里的输出没有用->而是 . 所以这到底是什么
for (int j = 0; j < 5; j++)
cout<< "\t学生的名字是 :" << asarr[i].sarr[j].name << "考试分数为: "<<asarr[i].sarr[j].score << endl;
}
}
int main() {
teacher asarr[3];
int len = sizeof(asarr) / sizeof(asarr[0]);
hain(asarr, len);
shuc(asarr, len);
/* for (int a = 0; a < 3; a++) //因为想看到底是值传递还是地址传递所以进行输出,,,结果不会了
{
for (int b = 0; b < 5; b++)
{
cout << "老师的名字是: " << asarr[a] << endl; //报错
}
}*/
system("pause");
return 0;
}
这里是在做一道练习题,关于一个老师带五个学生,随机数的分数
cout << "老师的名字是: " << asarr[a].name << endl; ---asarr[a]是teacher数据结构,老师名字是数据结构中的一个成员
void shuc(teacher asarr[], int len) 第一个参数是一个数组参数,实际就是个指针,但要求是指向teacher数据结构的
cout << "老师的名字是: " << asarr[i].name << endl; //这里的输出没有用->而是 . 所以这到底是什么
asarr[i]是teacher数据结构,所以用.
teacher *p = &asarr[i];
p->name;
这样才是用->,前面必须是指针对象
是因为,你说的数据结构,,,他虽然是地址传递,但对应的都是数据结构不是值,是这个意思吗?
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html