天天看點

資料結構-->結構體

  • 使用struct可以聚合不同數聚類性的資料,結構表示的是資料項的集合,每條資料項由其類型和名稱指定;
struct {
    char name[];
    int age;
    float salary;
}person;
           
  • 對于資料成員的指派可以以采用

    .

    來為資料成員進行指派,需要注意的是對于字元性指派需要使用

    strcpy

    函數

    來進行;

  • 還可以使用

    typedef

    來重新聲明一個新的類型,使用上面的方式構造的隻是一個變量,使用

    typedef

    得到的是一個

    新的類型,新的類型聲明之後,可以使用類型來定義變量,但是對于

    person

    就不可以用于定義變量;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define true 1
#define false 0


struct {
    char name[];
    int age;
    float salary;
}person;
//同樣的對于結構體來說,也是可以包含結構體的;
typedef struct {
    int month;
    int day;
    int year;
}date;
typedef struct{
    char name[];
    int age;
    float salary;
    date dob;
}HumanBeing;

bool Compare_struct(HumanBeing person1,HumanBeing person2){
    if(strcmp(person1.name,person2.name)&&person1.age==
    person2.age&&person1.salary==person2.salary)
        return true;
    else
        return false;
}

int main(){
    strcpy(person.name,"Hello world");
    person.age=;
    person.salary=;
    printf("name: %s\n",person.name);
    printf("age: %d\n",person.age);
    printf("salary: %f\n",person.salary);
    HumanBeing myinfo;
    strcpy(myinfo.name,"new name");
    myinfo.age=;
    myinfo.salary=;
    myinfo.dob.year=;
    myinfo.dob.month=;
    myinfo.dob.day=;
    HumanBeing person2;
    //對于相同類型的結構體是可以進行指派的,但是不可以進行比較操作;
    myinfo=person2;
}
           

繼續閱讀