文转码 C语言学习记录day5

结构体

关键字:struct

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。

比如描述学生,学生包含:名字+年龄+性别+学号这几项信息。这里只能使用结构体来描述了。

例:

//创建一个结构体类型

struct stu

{

     char name[20];//名字

     int age;//年龄

     char sex[5];//性别

     char id[15];//学号

};

//打印结构体信息

int main()

{

     //利用结构体类型创建一个该类型的结构体变量

     struct stu per = { "Sam",24,"男","120397" };

     //如果结构体变量是非指针类型,访问结构体成员的格式如下:

     //结构体变量名.成员名。"."为结构成员访问操作符

     //printf("姓名: %s\n", per.name);//这句话的意思是访问per结构体变量的name成员

     printf("name =%s age=%d sex=%s id=%s\n", per.name, per.age,per.sex, per.id);

     per.age = 26;

     printf("修改后的年龄: %d岁\n", per.age);

     struct stu* pb = &per;//struct stu*这种指针类型定义了一个变量叫pb

     利用pb打印出姓名和年龄

     //printf("%s\n", (*pb).name);//这里(*pb)的()想加就加,不加也行

     //printf("%d\n", (*pb).age);

    

     //↑上述的操作符比较麻烦,这里开始讲一个新的更简洁的写法

     printf("%s\n", pb->name);

     printf("%d\n", pb->age);

     return 0;

}



//.      结构体变量.成员

//-> 结构体指针->成员

例2:

//修改案例中的学生姓名

struct stu

{

     char name[20];//名字

     int age;//年龄

     char sex[5];//性别

     char id[15];//学号

};

int main()

{

     //案例中年龄可以更改,因为它是一个变量,但名字name属于数组字符串(本质上是一个地址),不好直接更改

     struct stu per = { "Sam",24,"男","120397" };

     //printf("name =%s age=%d sex=%s id=%s\n", per.name, per.age, per.sex, per.id);

     strcpy(per.name, "Seb");//strcpy - string copy - 字符串拷贝 - 库函数 - string.h

     printf("%s\n", per.name);

     return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值