C语言之结构体

举报
yd_221104950 发表于 2020/12/03 00:29:12 2020/12/03
【摘要】 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。 定义结构体类型变量 基本形式格式: struct 结构体名{ 成员表列; } 变量表列; 123 具体有四...

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。

定义结构体类型变量

基本形式格式:

struct 结构体名{
		成员表列;
}  变量表列;

  
 
  • 1
  • 2
  • 3

具体有四种方式 :

  • 1、定义结构体的同时定义变量:
struct Student{ char name[10]; int age;
} stu;

  
 
  • 1
  • 2
  • 3
  • 4
  • 2、先定义结构体,后再定义变量:
struct Student{ char name[10]; int age;
};
struct Student stu;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 3、先定义结构体,再定义结构体别名,再用别名定义变量:
typedef struct { char name[10]; int age;
} Student;
Student stu;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 4、匿名共用体,只使用一次
struct { char name[10]; int age;
} stu;


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

初始化成员列表

  • 1、定义结构体的同时定义变量,并进行初始化变量:
struct Student{ char name[10]; int age;
} stu={"Tom",12};

  
 
  • 1
  • 2
  • 3
  • 4
  • 2、先定义结构体,再定义变量,并初始化变量:
struct Student{ char name[10]; int age;
};
struct Student stu = {"Jhon",18};

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 3、先定义结构体,再定义结构体别名,再用别名定义变量,并初始化变量:
typedef struct { char name[10]; int age;
}Student;

Student stu = {"Jhon",19};

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 4、匿名结构体,只使用一次,初始化变量:
struct { char name[10]; int age;
}stu = {"Jho",16};

  
 
  • 1
  • 2
  • 3
  • 4

访问结构体变量

 strcpy(stu.name,"Tom Jhon");
 stu.age = 12;

  
 
  • 1
  • 2

完整例子

#include <stdio.h>
#include <string.h>
struct Student{ char name[10]; int age;
}stu;

int main(int argc,char* argv){ strcpy(stu.name,"Tom Jhon"); stu.age = 12; printf("name:%s\n",stu.name); printf("name 大小(单位:byte):%ld\n",sizeof(stu.name)); printf("age:%d\n",stu.age); printf("age大小(单位:byte):%ld\n",sizeof(stu.age)); printf("stu 大小(单位:byte):%ld\n",sizeof(stu)); return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

运行结果:

~/Desktop/c$ gcc main.c -o main
~/Desktop/c$ ./main
name:Tom Jhon
name 大小(单位:byte):10
age:12
age大小(单位:byte):4
stu 大小(单位:byte):16

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

谢谢阅读。

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/103638733

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。