请教C语言中struct的用法
的有关信息介绍如下:在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:
批良续认斤功钟啊降struct结构体名{
结构体所点爱计语密东用七企包含的变量或数组
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员加及指员自架河都曾看析(Member)。
结构轴广板爱石经更声体定义:
第一种:只有结构体定义
structstuff{
c政革harjob[20];
intage;
floatheight;
足演参行密};
第二种:附加该结构体类型的“结构体变量”的初始化的结构体定义
//直接带变量名Huqinwei
st杨析整乙有孩飞ructstuff{
charj于请种诉季直益续齐局志ob[20];
in清tage;
floatheight;
}Huqi氢声素振齐集村相械协印nwei;
也许初期看不习惯容易磁蒸困惑,其实这就相当于:
structstuff{
charjob[20];
intage;
floathe短帝翻体权析兵证则跟反ight;
};
structstuffHuqinwei;
第三种:如果掉英沉总半该结构体只用一个变量Huqinwei,而不再需要用structstuf宜品改张fyourname;去定义第二个变量。
那么,附加变量初始化的望毫上著衡席百裂某意音结构体定义还可进一略牛写凯德排响向书照可步简化出第三种:
struct{
charjob[20];
int宁整武协age;
floatheight;
}Huqinwei;
把结构体名称去掉,这样更简洁,不过也不能定义其他同结构体变量了——至少我现在没掌握这种方法。
结构体变量及其内部成员变量的定义及访问。
要分清结构体变量和结构体内部成员变量的概念。
就像刚才的第二种提到的,结构体变量的声明可以用:
structstuffyourname;
其成员变量的定义可以随声明进行:structstuffHuqinwei={"manager",30,185};
也可以考虑结构体之间的赋值:
structstufffaker=Huqinwei;
//或structstufffaker2;
//faker2=faker;
打印,可见结构体的每一个成员变量一模一样
如果不使用上边两种方法,那么成员数组的操作会稍微麻烦(用for循环可能好点)
***.job[0]='M';
***.job[1]='a';
***.age=27;
***.height=185;
结构体成员变量的访问除了可以借助符号".",还可以用"->"访问。
扩展资料:
结构体数组与结构体指针:
一个结构体变量中可以存放一组数据;如一个学生的学号、姓名、成绩等数据。如果有10个学生的数据需要参加运算显然应该用数组,这就是结构体数组结构体数组与以前介绍过的数值型数组不同之处:每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员(分量)项。
结构体指针和其他类型的指针都是一样的理解,在32位平台不管啥类型的指针都占4个字节的空间。
结构体指针就是指向结构体变量的指针;如果一个指针变量中保存了结构体变量的首地址,那么这个指针变量就指向该结构体变量.通过结构体指针即可访问该结构体变量,这与数组指针和函数指针的情况是相同的结构指针变量说明的一般形式为:
struct结构体名*结构体指针变量名structstudent*p=&Boy;//假设事先定义了structstudentBoy。
参考资料来源:百度百科-struct