加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1.结构体怎么初始化
    • 2.结构体的sizeof怎么计算
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

结构体怎么初始化 结构体的sizeof怎么计算

2022/02/22
1108
阅读需 3 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

结构体是一种用户自定义的数据类型,它可以包含多个不同类型的变量。在C语言中,结构体需要被正确地初始化才能使用,并且其实际所占用的内存空间大小需要通过sizeof运算符来计算。

1.结构体怎么初始化

结构体的初始化是指给结构体成员变量赋初值的过程。结构体变量的初始化可以有以下几种方式:

  • 按顺序初始化,即按结构体定义的顺序逐一给成员变量赋值。
  • 按名称初始化,即直接指定每个成员变量的名称和值。
  • 使用C99标准新增的“设计器初始化”(designated initialization)特性,即可以指定某个成员变量的初始化值,而另外一些未指定的成员变量会以0或NULL的形式进行默认初始化。

比如:

struct Student {            char name[20];            int age;            float score;        };        struct Student s1 = {"Tom", 18, 89.5};        struct Student s2 = {.name = "Jerry", .score = 92.0}; //只初始化部分成员变量        struct Student s3 = {[1] = 20, [0] = "Bob"}; //指定某些成员变量的初始化值

2.结构体的sizeof怎么计算

C语言中,计算结构体所占用的内存空间大小需要使用sizeof运算符。sizeof运算符返回一个对象或类型所占用的字节数。

当对结构体类型进行sizeof运算时,会得到该结构体所占用的实际字节数,其计算方法为:

struct Student {            char name[20];            int age;            float score;        };        sizeof(struct Student) = sizeof(name) + sizeof(age) + sizeof(score)                                 = 20 + 4 + 4                                 = 28

由于结构体可能存在内存对齐的问题,因此sizeof计算结果可能会比实际使用的内存空间稍微大一些。

相关推荐

电子产业图谱