结构体是把一些单一类型组合在一起的做法
需要弄懂两个操作:存储数据和访问数据
#include <stdio.h>
struct Students
{
//成员
char name[5];
int age;
char sex[5];
char tel[12];
};
int main()
{
struct Students stu = { "ling",18,"女","18119642419" };
printf("%s %d %s %s\n", stu.name, stu.age, stu.sex, stu.tel);
print(&stu);
return 0;
}
注意:程序运行"struct Students stu=..."时内存才分配空间存储数据。
“%s”对应 字符串 类型
要注意printf函数里%s、%d 要与变量一一对应,否则编译器会凌乱,无法打印。
"printf("%s %d %s %s\n", stu.name, stu.age, stu.sex, stu.tel);"语句是否繁杂,如果频繁操作是否过于冗杂?
结合前面学的指针,是否可以通过stu的内存地址直接访问其所储存的数据呢?
#include <stdio.h>
struct Students
{
//成员
char name[5];
int age;
char sex[5];
char tel[12];
};
//use point 传参
void print(struct Students* p)
{
printf("%s %d %s %s\n", (*p).name, (*p).age, (*p).sex, (*p).tel);//必须带()
printf("%s %d %s %s\n", p->name, p->age, p->sex, p->tel);//“->”结构体指针变量->成员名
}
int main()
{
struct Students stu = { "ling",18,"女","18119642419" };
printf("%s %d %s %s\n", stu.name, stu.age, stu.sex, stu.tel);
print(&stu);
return 0;
}
运行:
通过对比发现通过指针访问数据显然是可行的。