设置 sourceinsight 结构体_什么是结构体

结构体

结构体顾名思义就是一个整体,里面包含着各种各样的数据,而这些数据是由程序员自己设置的。设置结构体的一般形式就是:
struct 结构体名{成员};
(注意大括号后面是有分号的,不然你查错的时候会很痛苦,别问我怎么知道的)。 先来个栗子玩一下:
struct family{int num;char a[10];int Age;};
这里我创建了一个叫做family的结构体,里面的成员有一个int类型数据和一个char类型的数组,那么我们声明结构体的时候系统是不分配储存空间的,当我们创建结构体变量的时候系统才会分配储存空间,定义变量的方式有三种:

01

先声明结构体类型,再定义该类型变量

上文声明了family的结构体类型,可以用它来定义变量。struct family t1,t2;这种形式和创建基本数据类型变量是相似的。这样则创建了两个family类型的变量t1,t2,它们具有struct family类型的结构。

02

在声明类型的同时定义变量

struct family{int num;char a[10];int Age;}t1,t2;

03

不指定类型名直接定义结构体类型变量

结构体无名,在声明的时候定义变量(这种一般不建议使用,因为如果要使用这个结构体时只能依靠这个定义的变量来使用)
struct{int num;char a[10];int Age;}t1,t2;
0eb0684a892d300b7014b9a7aa4c916d.gif 在设置结构体内部的数据也是设计者需要注意的: 就拿我这里的栗子来说,如果我要创建一个family类型的变量,所需要的储存空间如下图所示: 915ccf7a59a305bfb4aeb711a84c0109.png ⚪代表num占的空间,▷代表a[10]占的空间,▯代表Age所占的空间,而所有格子代表这个变量所占的空间,所以这个变量占30个字节,而我们把结构体设置成:
struct family{int num;int Age;char a[10];};
那么变量所占空间的图示就是一下那样: f45caba7750d34cac3ad3c86fda83a9e.png 这里的变量只占了20个字节。同一个结构体,变量设置的位置不同会影响分配的储存空间的大小,所以如何合理分配成员也是需要设计者去思考的。 与其他数据类型一样,结构体也可以设置结构体数组,例如:struct family a[10];这里就设置了一个大小为10的结构体数组。 在结构体变量调用结构体的成员时,用“.”来进行调用,例如我设置了一个t1变量,要调用num成员:
t1.num;
也可以设置结构体指针用“->”来进行成员的调用:
struct family t1;struct family *y;y=&t1;printf(“%d”,y->num);//或者printf(“%d”(*y).num);
结构体变量之间是可以进行互相赋值的,前提是两个变量都属于同一类,就算数据成员一样,但是类不同也是不能进行赋值的。

—EasyProgram公众号平台—

  文章:何泽邦

  初审:方湘琪

  复审:曾煜

  编辑:方湘琪

  图片:原创

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值