找人做网站昆明,wordpress 强大主题,seo公司服务,建筑模拟3中文版下载18-1 概念
我们现在已经知道的数据类型#xff1a;
char short int long float double
但是当我们需要描述一个复杂对象时#xff0c;这些数据类型单独拿出来不能满足#xff0c;如#xff1a;
人#xff1a;名字年龄性别地址电话
书#xff1a;书名作者出版社定价书…18-1 概念
我们现在已经知道的数据类型
char short int long float double
但是当我们需要描述一个复杂对象时这些数据类型单独拿出来不能满足如
人名字年龄性别地址电话
书书名作者出版社定价书号
所以C语言就给了自定义类型的能力自定义类型中有一种叫结构体struct
结构体是把一些单一类型组合在一起的做法
struct Stu //学生
{char name[20]; //名字int age; //年龄char sex[10]; //性别char tele[12]; //电话号码
};
struct Stu占空间吗
并不占空间这里的struct Stu实质上就是个类型只有
struct Stu s;
创建该类型的变量的时候才占空间
18-2 结构体的初始化
创建并初始化
struct Stu
{char name[20];int age;char sex[10];char tele[12];
};
int main()
{struct Stu s { zhangsan,20,nan,15596668862 };return 0;
}
18-3 操作符.和-
在此我们可以讲一下之前跳过的操作符.和-了
18-3-1 .
使用前提有结构体对象
访问结构体对象的成员结构体对象.成员名s.name/s.age/ s.sex/ s.tele
struct Stu
{char name[20];int age;char sex[10];char tele[12];
};
int main()
{struct Stu s { zhangsan,20,nan,15596668862 };printf(%s %d %s %s\n, s.name, s.age, s.sex, s.tele);return 0;
}
运行结果
当然只要打印的类型与结构体对象的成员对应顺序可以改变
18-3-2 -
使用前提有地址/指针
结构体指针变量-成员名ps-name/ps-age/ps-sex/ ps-tele
struct Stu
{char name[20];int age;char sex[10];char tele[12];
};
void print(struct Stu* ps)
{printf(%s %d %d %s\n, (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);printf(%s %d %d %s\n, ps-name, ps-age, ps-sex, ps-tele);
}
int main()
{struct Stu s { zhangsan,20,nan,15596668862 };print(s);return 0;
}
运行结果