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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM