//描述学生 1,姓名 2.年龄 3.电话 4.性别 struct Stu -结构体类型
typedef struct student {
//成员变量
char name[20];
short age;
char number[12];
char sex[5];
}Stu;
void printf1(Stu tmp) {
printf("name:%s\n", tmp.name);
printf("age:%d\n", tmp.age);
printf("tele:%s\n", tmp.number);
printf("sex:%s\n", tmp.sex);
}
void printf2(Stu* ps) {
printf("name:%s\n", ps->name);
printf("age:%d\n", ps->age);
printf("tele:%s\n", ps->number);
printf("sex:%s\n", ps->sex);
}
int main() {
struct student s1 = {"李四",40,"15599999099","男"};
//打印结构体数据
printf1(s1);
printf2(&s1);
return 0;
}
使用结构体传参的时候,最好使用地址来传,直接传值可能会因为结构体占用空间大,压栈的系统开销过大,导致程序性能的下降。
struct S {
int a;
char c;
char arr[20];
double d;
};
struct T {
char ch[10];
struct S s1;
char *pc;
};
int main() {
char arr[] = "hello bit\n";
struct T t = { "hehe",{1,"w","xixi",3.14},arr};
printf("%s\n",t.ch);
printf("%d\n",t.s1.a);
printf("%s\n",t.s1.arr);
printf("%lf\n",t.s1.d);
printf("%s\n",t.pc);
return 0;
}
结构体创建和初始化,结构体内部可以定义数组,基本数据类型,指针,结构体等变量。