C语言,结构体语法:
1.定义结构体类型:
struct 结构体名称
{
成员类型 成员名称1;
成员类型 成员名称2;
...
};
例:struct Date
{
int year ;
int month ;
int day ;
}
2.结构体在内存中
例一:
struct Student
{
char *name;//指针占8个字节
int no;//int占4个字节
int age;//int占4个字节
};
struct Student s1 ;
int length = sizeof(s1);//得到的长度是16
例二:
struct Student
{
int age ;//占4个字节
char sex ;//占1个字节
};
struct Student s2;
int length = sizeof(s2);//得到的长度是8
总结:默认情况下,一个结构体变量所占用的存储空间是所有成员的总和。
sizeof计算结构体所占用存储空间时,返回值必须是最大成员的倍数。
3.结构体数组:
struct Record
{
int no;//排名
char *name;
int score;
};
struct Record records[3]=
{
{1, "jack", 10},
{2, "jim" ,9},
{3, "tom" ,5}
};
4.指向结构体类型的指针(注意:结构体作为函数参数时,只是成员的值传递,修改函数内部的结构体,并不影响外面的结构体)
定义结构体
struct Date
{
int year;
int month;
int day;
};
//指向结构体的指针
struct Date mydate = {2016,1,16};
struct Date *p ;
p=&mydate;
//给指针变量p所指向的结构体的year成员赋值
//方法一:(*p).year=2000;
//方法二:p->year=2000;