网站app在线生成器,太原市网站,5分钟宣传片拍摄价格,电商网站改版思路一.结构体的声明#xff1a;
#xff08;1#xff09;结构的基础知识#xff1a; 结构体是一种构造数据类型把不同类型的数据组合成一个整体结构体是一些值的集合#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量需要注意的是#xff0c;结构体是一种…一.结构体的声明
1结构的基础知识 结构体是一种构造数据类型把不同类型的数据组合成一个整体结构体是一些值的集合这些值称为成员变量。结构的每个成员可以是不同类型的变量需要注意的是结构体是一种自定义的数据类型是创建变量的模板不占用内存空间结构体变量才包含了实实在在的数据需要内存空间来存储。 2结构的声明
定义全局变量 #includestdio.h
struct People
{char name[20];int age;char sex[5];char tele[12];int high;
}p1,p2;
//p1,p2是两个全局变量的结构体变量
int main()
{return 0;
} 定义局部变量 #includestdio.h
struct People
{char name[20];int age;char sex[5];char tele[12];int high;
};
int main()
{struct People p1;//结构体变量的创建return 0;
}
注意不要忘记分号在结束花括号后的分号表示结构体设计定义的结束 3结构体成员的类型 结构体成员可以是标量、数组、指针、甚至是其他结构体 4结构体变量的定义和初始化 初始化定义变量的同时赋初值 定义的三种方式上面提到了
#includestdio.h
struct People
{char name[20];int age;char sex[5];char tele[12];int high;
}p1,p2;
//p1,p2是两个全局变量的结构体变量
struct People p3;//全局变量
int main()
{struct People p4;//局部变量return 0;
}
赋值并打印嵌套
#includestdio.h
struct Peo
{char name[20];int age;char sex[5];
};
struct BOOK
{int page;struct Peo s;
};
int main()
{struct Peo p1 { blf,19,boy };struct BOOK p2 { 65,{qsl,19,girl} };printf(%s %d %s\n, p1.name, p1.age, p1.sex);printf(%d %s %d %s\n, p2.page, p2.s.name, p2.s.age, p2.s.sex);return 0;
} 输出结果blf 19 boy 65 qsl 19 girl 二.结构体成员的访问 C语言规定结构体的普通成员可以通过运算符“点.”去访问其成员点操作符接受两个操作数。引用形式结构体类型变量名.成员名结构体指针变量如何访问其成员可以通过箭头符号的方式去访问其成员*p.name p - name 左右两种方式等价结构体成员如果是字符串不能直接通过符号“”去修改值可以通过C语言中的拷贝函数strcpy去修改值 配合代码理解
#includestdio.h
struct Peo
{char name[20];int age;char sex[5];
};
struct BOOK
{int page;struct Peo s;
};
void print1(struct Peo p)
{printf(%s %d %s\n, p.name, p.age, p.sex);
}
void print2(struct Peo* sp1)
{printf(%s %d %s\n, sp1-name, sp1-age, sp1-sex);printf(%s %d %s\n, (*sp1).name, (*sp1).age, (*sp1).sex);
}
int main()
{struct Peo p1 { blf,19,boy };struct BOOK p2 { 65,{qsl,19,girl} };printf(%s %d %s\n, p1.name, p1.age, p1.sex);printf(%d %s %d %s\n, p2.page, p2.s.name, p2.s.age, p2.s.sex);print1(p1);print2(p1);return 0;
} 三.结构体传参 函数传参的时候参数是需要压栈的如果传递一个结构体对象的时候结构体过大参数压栈的系统开销比较大所以会导致性能的下降结论结构体传参时要传结构体的地址