个人理解—结构体与结构体指针

        首先定义一个正常的结构体:

struct 名字
{
xxxxxx
};

定义结构体变量
struct 名字(类型) 名字(变量名)


struct student
{
    char name[20];
};

定义结构体变量
struct student s1;
s1.name=xxxxx;

        用typedef来定义结构体并进行重命名:

typedef struct student(类型名)
{
    char name[20];
}student_t(typedef重命名的类型名,可以与类型名相同);

使用时
student_t s2;
struct student s3;

        前面的文章中说过,传值与传址的区别,以及为什么要进行传地的原因,是为了减少内存开销以及提高代码运行效率。

        在使用struct定义结构体时,申请结构体指针方式为:

struct student *p1;

        那么能不能使得结构体指针定义更方便更简洁呢,答案是,使用typedef:

typedef struct teacher
{
    char name[20];
    int age;
}teacher(重命名为teacher),*PTeacher(将struct teacher*重命名为PTeacher);

使用方式:
student t1;
t1.age=20;
PTeacher p1=&t1;
printf("teacher age=%d",p1->age);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值