• struct结构体


    打比赛的时候发现struct还是不怎么用的习惯,有些东西缕不太顺,所以仔细学习一下。

    一. 首先是结构体的声明

     定义结构变量的一般格式为: 

    struct 结构名 { 

       类型  变量名; 

       类型  变量名; 

             ...... 

    } 结构变量;            

    结构名是结构的标识符不是变量名。 类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无值型)。

    有一下三种写法:

    struct String{
        char name[8];
        int age;
        char sex[2];
        char depart[20];
        float wage1,wage2,wage3,wage4,wage5;
    }person;  
    
    struct String{
        char name[8];
        int age;
        char sex[2];
        char depart[20];
        float wage1,wage2,wage3,wage4,wage 5;
    };
    struct String person;
    
    struct{
        char name[8];
        int age;
        char sex[2];
        char depart[20];
        float wage1,wage2,wage3,wage4,wage5;
    }a,b;

    三者之间的区别:

    1、第一种定义了一个结构名为String的结构变量preson,如果生略变量名person,则变成对结构的说明。用已说明的结构名也可定义结构变量。就可以变成第二种了。

    2、第二种 是定义了一个结构名为Sting的结构体。如果要多声明几个变量名,则世界在后面struct String a,b,c,d....;直接来用。

    3、第三种是省略了结构名。如果省略结构名, 则称之为无名结构, 这种情况常常出现在函数内部。

    另外,结构体也有数组的功能。

    struct student{
        int num;
        char name[20];
        int age;
    }stu[2]; 

    我们定义了一个结构体类型是struct student,它有三个成员分别是num, name, age。用这样的结构体类型定义了一个结构体数组stu[2],该数组有两个元素,分别是 stu[0], stu[1].那如何给数组元素中的成员赋值呢?

    结构体数组的引用:

    stu[0].num = 100;

    strcpy( stu[0].name,“Zhangsan” );

    stu[0].age = 18;

    来个简单的样例:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct student{
        int num;
        char name[20];
        float score;
    }stu[3]={
        {101,"aa",49},
        {102,"bb",88},
        {103,"cc",99}
    };
    
    int main(){
        int num=0;
        float ave,sum=0;
        for(int i=0;i<3;i++){
            sum+=stu[i].score;
            if(stu[i].score<60) num++;
        }
        ave=sum/5;
        cout<<ave<<" "<<num<<endl;
        return 0;
    }
  • 相关阅读:
    Python基础编程常用模块汇总
    博客目录
    网络编程
    python 对象
    python模块和规范开发
    python常用内置函数
    python递归函数和匿名函数
    python装饰器
    python迭代器,生成器,推导式
    python作用域
  • 原文地址:https://www.cnblogs.com/wushengyang/p/10585683.html
Copyright © 2020-2023  润新知