第四天初识c语言

1.结构体

结构体就是用于描述复杂对象而创建出来的一种类型

复杂对象例如:

描述一个人--名字,性别,年龄,地址,电话号码,身份证号等。。。

描述一本书--名字,作者,页数,定价等。。。

在c语言中要对这个人,书进行描述,需要用到结构体

struct 是结构体关键字

下面将利用代码来描述一个人:

#include<stdio.h>
struct PEOPLE {//PEOPLE是这个结构体的名字
    int serial_number;
    char name[20];
    char gender[10];
    char phone_number[55];
    char address[8888];
    char identity_card_number[88];
};
int main() {
    struct PEOPLE a1 = {1,"小明","","17613945236","湖北省宜昌市西陵区","411524200301151111"};
printf("序号:%d\n", a1.serial_number);
    printf("姓名:%s\n",a1.name);
    printf("性别:%s\n", a1.gender);
    printf("手机号:%s\n", a1.phone_number); 
    printf("家庭住址:%s\n", a1.address); 
    printf("身份证号码:%s\n", a1.identity_card_number);
return 0;
}

结构体的声明形式为:

struct结构体名
{
    成员列表
};

 

char name[20];这个是数组的声明;

下面将利用指针打印它们的值

 

#include<stdio.h>
struct PEOPLE {//PEOPLE是这个结构体的名字
    int serial_number;
    char name[20];
    char gender[10];
    char phone_number[55];
    char address[8888];
    char identity_card_number[88];
};
int main() {
    struct PEOPLE a1 = {1,"小明","","17613945236","湖北省宜昌市西陵区湖北三峡职业技术学院","411524200301156511"};
    //a1是一个结构体变量
    struct PEOPLE* pb = &a1;
    //利用指针来打印它们的成员
    printf("%d\n", (*pb).serial_number);
    printf("%s\n", (*pb).name);
    printf("%s\n", (*pb).gender);
    printf("%s\n", (*pb).phone_number);
    printf("%s\n", (*pb).address);
    printf("%s\n", (*pb).identity_card_number);
    printf("------------------------------------\n");
    //-------------------------
    //结构体指针->成员(更好理解)
    printf("%d\n", pb->serial_number);
    printf("%s\n", pb->name);
    printf("%s\n", pb->gender);
    printf("%s\n", pb->phone_number);
    printf("%s\n", pb->address);
    printf("%s\n", pb->identity_card_number);
    return 0;
}

对成员的值进行修改

#include<stdio.h>
#include<string.h>//引入头文件,方便对库函数的调用,目标是实现对数组内容的修改
struct PEOPLE {//PEOPLE是这个结构体的名字
    int serial_number;
    char name[20];
    char gender[10];
    char phone_number[55];
    char address[8888];
    char identity_card_number[88];
};
int main() {
    struct PEOPLE a1 = {1,"小明","","17613945236","湖北省宜昌市西陵区","411524200301151111"};
    //a1是一个结构体变量
    struct PEOPLE* pb = &a1;
    //利用指针来打印它们的成员
    printf("%d\n", (*pb).serial_number);
    printf("%s\n", (*pb).name);
    printf("%s\n", (*pb).gender);
    printf("%s\n", (*pb).phone_number);
    printf("%s\n", (*pb).address);
    printf("%s\n", (*pb).identity_card_number);
    printf("------------------------------------\n");
    //-------------------------
    //结构体指针->成员(更好理解)
    printf("%d\n", pb->serial_number);
    printf("%s\n", pb->name);
    printf("%s\n", pb->gender);
    printf("%s\n", pb->phone_number);
    printf("%s\n", pb->address);
    printf("%s\n", pb->identity_card_number);
    printf("------------------------------------\n");
    //结构体变量.成员
    printf("序号:%d\n", a1.serial_number);
    printf("姓名:%s\n",a1.name);
    printf("性别:%s\n", a1.gender);
    printf("手机号:%s\n", a1.phone_number); 
    printf("家庭住址:%s\n", a1.address); 
    printf("身份证号码:%s\n", a1.identity_card_number);
    printf("------------------------------------\n");
    //对成员的值进行修改
    a1.serial_number = 2;
    printf("修改后的序号:%d\n", a1.serial_number);
    /*a1.phone_number = "15549359896";
    printf("手机号:%s\n", a1.phone_number); *///字符串不能够直接修改,否则直接报错
                                               //原因是"phone_number"是数组名,数组不可以直接改
                                               //而变量可以直接改
    //如果要对数组里面的值进行改变,需要引入库函数--strcpy--引入库函数还需要引入这个包含库函数的头文件string.h;
    strcpy(a1.phone_number,"15549356861");
    printf("修改后的手机号:%s\n", a1.phone_number);
    return 0;
}

 

posted @ 2022-06-02 16:41  浅影阿  阅读(37)  评论(0编辑  收藏  举报