千家信息网

C++结构体怎么创建和初始化

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"C++结构体怎么创建和初始化",在日常操作中,相信很多人在C++结构体怎么创建和初始化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++结构体怎么创
千家信息网最后更新 2025年01月20日C++结构体怎么创建和初始化

这篇文章主要介绍"C++结构体怎么创建和初始化",在日常操作中,相信很多人在C++结构体怎么创建和初始化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++结构体怎么创建和初始化"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创建结构体和初始化操作

#include#includeusing namespace std;struct User {        char name[20];        char sex[5];        int age;};struct Student {        string name;        int age;        int score;}stu;//第三种int main() {        struct User u1;        strcpy_s(u1.name,"肥学");        u1.age = 12;        strcpy_s(u1.sex,"男");                cout << "name:" << u1.name << "age:" << u1.age << "sex:" << u1.sex << endl;        struct Student s;        s.name = "鸣人";        s.age = 20;        s.score = 80;        cout << "name:" <

结构体的的一些操作

#include#includeusing namespace std;struct Friend{        string name;        int age;        string sex;};struct User {        string name;        int age;        string sex;        struct Friend f;};void addFriend(User* u) {        Friend f = { "fei",20,"men" };        u->f = f;}void addF2(User& u) {        Friend f = { "xue",20,"men" };        u.f = f;}int main() {        //结构体数组        /*User arru[5];        arru[0] = { "pter",20,"men" };        cout << arru[0].name << endl;*/        //结构体指针        /*        User u = { "pter",20,"men" };        User *p = &u;        cout << p->name << endl;*/        //嵌套结构体        /*        User u;        Friend f = { "pter",20,"men" };        u = { "hello",20,"men",f };        cout << u.name << "  " << u.f.name << endl;*/        //***结构体做函数的参数***        //地址传递        cout << "地址传递" << endl;        User u = { "pter",20,"men" };        cout << "myname:" << u.name << "   fname:" << u.f.name << endl;        addFriend(&u);        cout << "myname:" << u.name << "   fname:" << u.f.name << endl;        //引用传递        cout << "引用传递" << endl;        User u2 = { "ppt",20,"men" };        cout << "myname:" << u2.name << "   fname:" << u2.f.name << endl;        addF2(u2);        cout << "myname:" << u2.name << "   fname:" << u2.f.name << endl;}

结构体的const

#include#includeusing namespace std;struct User {        const string name;//感觉像Java  private        const int age;        const string sex;};void printInfo(const User* u) {                cout << u->name<<"  " << u->age <<"  " <sex << endl;}int main() {        User u = { "肥学",20,"男" };        printInfo(&u);}

案例练习

给每位老师分配几位学生

#include#include#includeusing namespace std;typedef struct Student {        string name;        int age;        string sex;}S;typedef struct Teacher {        string name;        int age;        string sex;        S sarray[5];}T;void assignment(T* tarray,int len) {        for (int i = 0; i < len; i++) {                cout << "请输入老师姓名:" ;                cin >> tarray[i].name;                cout << "请输入年龄:";                cin >> tarray[i].age;                cout << "请输入性别:";                cin >> tarray[i].sex;                for (int s = 0; s < 2; s++) {//为了操作方便就输入两位学生信息                        cout << "请输入学生姓名:";                        cin >> tarray[i].sarray[s].name;                        //cout << "请输入学生年龄:";                        //cin >> tarray[i].sarray[s].age;                        tarray[i].sarray[s].age = rand() % 18 + 8;                        cout << "请输入学生性别:";                        cin >> tarray[i].sarray[s].sex;                }        }}void printInfo(T* tarray,int tnum) {        cout << "信息展示:\n" << endl;        for (int i = 0; i < tnum; i++) {                cout << "老师姓名:"<

案例练习2

对每个员工的工资进赋值,然后对工资排序输出

#include#include#includeusing namespace std;struct staff {        string name;        int salary;};void initStaff(staff* sarray,int len) {        string nameseed = "ABCDE";        for (int i = 0; i < len; i++) {                int r = rand() % 10000 + 3000;                string n = "user_";                string name = n + nameseed[i];                staff s = {name,r };                sarray[i] = s;        }}void printInfo(staff* sarray, int len) {        for (int i = 0; i < len; i++) {                cout << "姓名:" << sarray[i].name << "  工资:" << sarray[i].salary << endl;        }}void sortSalary(staff* sarray,int len) {        for (int i = len-1; i >0; i--) {                for (int j = len-1; j >= len-i; j--) {                        staff maxsalary;                        if (sarray[j].salary > sarray[j - 1].salary) {                                maxsalary = sarray[j];                                sarray[j] = sarray[j - 1];                                sarray[j - 1] = maxsalary;                        }                }        }}int main() {        srand((unsigned int)time(NULL));        staff sarray[5];        int snum = (sizeof(sarray)) / sizeof(sarray[0]);        initStaff(sarray, snum);        printInfo(sarray, snum);        sortSalary(sarray, snum);        cout << "\n\n按工资排序后:\n" << endl;        printInfo(sarray, snum);}

到此,关于"C++结构体怎么创建和初始化"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0