C语言入门到进阶(结构体) 7th/Dec./2019

主要内容

1、为什么使用结构体?
需要一种类型,该类型可以保存多个同类型的数据
2、结构体是什么?
是一种类型
3、如何定义结构体类型?

e.g

struct student{
      int age;
      char sex;
      char name[10];
}

注意:定义结构体类型时,内部类型不能赋初值,原因:类型无内存,不能赋值;同样,类的成员变量同样不能赋初值,但对象可以赋初值

4、如何使用结构体变量?

struct student xiaow;
    struct student laow = {40,'m',"老王"};//初始化 
使用结构体变量
    laow.age = 35;

5、结构体类型内存字节数的计算方式
 对齐方式:小类型 对齐 大类型

struct person{
   int age;
   char * name;
}

sizeof(struct person)该结构体类型内存大小为16个字节

struct person{
   int age;
   char  name[5];
}

sizeof(struct person)该结构体类型内存大小为4*3=12个字节

struct person{
   int age;
   char * name;
  char  sex;
}

sizeof(struct person)该结构体类型内存大小为8*3=24个字节

struct person{
   int age; 
   char  sex;
   char * name;
}

sizeof(struct person)该结构体类型内存大小为8*2=16个字节


结构体具体使用

定义结构体类型

struct person{
        int age;
        int height;
    };

定义结构体类型变量

  • struct person xw;
  • struct person *p = &xw;结构体指针

访问

xw.age = 20;
xw.height = 180;
  • 指针使用->访问元素
p->age = 30;
p->height = 180;

将结构体保存到文件

FILE *fp = fopen("C:\\Users\\Administrator\\Desktop\\test.txt","a+");

fwrite(&xw, sizeof(struct person), 1, fp);//写入二进制流

读取内容

    struct person zs;
    fread(&zs, sizeof(struct person), 1, fp);
    
    printf("age:%d height:%f\n",zs.age,zs.height); 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容