写一个结构体(与typedef做了结合)
c
// 将单一类型组合在一起形成自定义类型--结构体
typedef struct Stu // struct Stu属于类型
{
// 成员
char name[20];
int age;
char sex[10];
char tele[12];
} Stu; //;不能忽略
结构体对象.成员名
c
#include <stdio.h>
int main()
{
struct Stu s1 = {"zhangsan", 20, "nan", "13578412456"};
// 上下两种初始化效果相同,因为用了typedef
Stu s2 = {"lisi", 21, "nv", "18574136855"};
// 结构体对象访问其对象用"."
// 结构体对象.成员
printf("%s %d %s %s\n", s1.name, s1.age, s1.sex, s1.tele);//zhangsan 20 nan 13578412456
printf("%s %d %s %s\n", s2.name, s2.age, s2.sex, s2.tele);//lisi 21 nv 18574136855
return 0;
}
结构体指针变量->成员名
c
#include <stdio.h>
// 因为参数传的是结构体对象s1的地址需要用一个指针变量来存,指针变量起名为PS1
// s1的类型为struct Stu所以print()的参数要写成Stu *PS1
void print(Stu *PS1)
{
// 上下两种写法相同
// 1.先把地址解引用找到指向的结构体对象再用.找成员
printf("%s %d %s %s\n", (*PS1).name, (*PS1).age, (*PS1).sex, (*PS1).tele);//zhangsan 20 nan 13578412456
// 2.结构体指针变量->成员名
printf("%s %d %s %s\n", PS1->name, PS1->age, PS1->sex, PS1->tele);//zhangsan 20 nan 13578412456
}
int main()
{
struct Stu s1 = {"zhangsan", 20, "nan", "13578412456"};
// 上下两种初始化效果相同,因为用了typedef
Stu s2 = {"lisi", 21, "nv", "18574136855"};
print(&s1);
return 0;
}