对结构体的初探究

初认识

本文章意在入门结构体,能初步看懂关于结构体的简单代码,并可以自己上手。

简单比较

数组是一组相同类型元素的集合,而结构体可以是一组不同类型元素的集合。

结构体的声明:

这只是自定义一个数据类型,并没有实现它。
既可以在main()内声明,也可以在main()外声明。

//struct 为关键字  name为自定义结构体的名称
struct name
{
    //成员列表
    char name[20];
    int age;
    float score;
}s1, s2;       //分号是较为容易忽略的

struct name01
{
   int num;
   double aver;
   struct name s;//内置一个结构体成员,实现嵌套
}

实现并初始化自定义数据类型:

//在结构体的声明中
//s1, s2创建了结构体变量,就是实现了name这个数据类型,并且这个是全局变量

//也可以在main()外
struct name a;

//还可以在main()内
int main()
{
    struct name s3 = {"lisi", 19, 96.5};//定义了s3 name类型的结构体,并进行初始化
    printf("%s %d %f", s3.name, s3.age, s3.score);//打印结构体成员

    struct name01 a = {20, 60.0, {"list", 30, 93.0f}};
    printf("%d %f", a.num, a.s.score);//打印结构体的成员变量及结构体中结构体的成员变量
}

结构体指针:

struct name* p = &a;//结构体指针p指向结构体变量a

结构体对成员变量的引用:

//1、结构体变量.成员变量
s3.age
//2、结构体指针->成员变量
p->num
p->s.age

结构体传参:

//struct name
//{
    //成员列表
    //char name[20];
    //int age;
    //float score;
//}b;      
void Info01(struct name p)//不推荐,如果创建一个大的结构体对象,系统资源会浪费很多,进而导致性能的下降
{
    p.name = "somebody";
    p.age = 18;
    p.score = 80.0f;
}

void Info02(struct name* p)
{
    p->name = "somebody";
    p->age = 18;
    p->score = 80.0f;
}
//1、传值调用:
Info01(b);

//2、传参调用:
Info02(&b);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值