C语言struct用法详解

您所在的位置:网站首页 c语言temp用法 C语言struct用法详解

C语言struct用法详解

2022-12-23 02:50| 来源: 网络整理| 查看: 265

struct 结构体名{     结构体所包含的变量或数组 };

它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member),像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。

struct student{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 };//注意“;”

结构体的变量定义形式:

struct student stu1, stu2;

你也可以在定义结构体的同时定义结构体变量:

struct stu{ char *name; int num; int age; char group; float score; } stu1, stu2;//末尾处

或者不出现结构体名,直接定义结构体变量,缺点是无法继续使用来定义其他新变量。

struct{ //没有写 stu char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 } stu1, stu2;

理论上讲结构体的各个成员在内存中是连续存储的,和数组非常类似,例如上面的结构体变量 stu1、stu2 的内存分布如下图所示,共占用 4+4+4+1+4 = 17 个字节

 在编译器的具体实现中,各个成员之间可能会存在缝隙,对于 stu1、stu2,成员变量 group 和 score 之间就存在 3 个字节的空白填充(见下图)。这样算来,stu1、stu2 其实占用了 17 + 3 = 20 个字节。

 给结构体赋值,格式为:结构体变量名.内部变量=

//给结构体成员赋值 stu1.name = "Tom"; stu1.num = 12; stu1.age = 18; stu1.group = 'A'; stu1.score = 136.5;

打印:

printf("%s的学号是%d,年龄是%d,在%c组,今年的成绩是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score);

int num------->%d

char  *name ------>%s(%s格式输出是用来连续输出字符数组中的字符的)

float score------->%f

%c------->输出单个字符

(1.保留n位小数

printf("%.nlf",a);//保留n位小数 此外,还可以写做 printf("%.*f",n,a);//n表示保留位数

2.控制宽度,保留n位小数 printf("%m.nlf",a);//宽度为m,保留n位小数,右对齐。 printf("%-m.nlf",a);//宽度为吗,保留n位小数,左对齐。)

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3