-
结构体的声明
-
结构的基础知识
-
结构是一些值的集合,这些值称为 成员变量 。结构的每个成员可以是不同类型的变量。
-
-
结构的声明
- 结构体声明语法
struct tag { member - list; }variable - list;
- code示例:描述一个学生
typedef struct Stu { char name[20]; // 名字 int age; // 年龄 char sex[5]; // 性别 char id[20]; // 学号 }Stu; // 分号不能省略
- 结构体声明语法
-
结构成员的类型
-
结构的成员 可以是 标量 、 数组 、 指针 ,甚至是 其他结构体 。
-
-
结构变量的定义的初始化
- 初始化:
- 声明类型的同时定义变量
- 定义变量的同时赋初值
- 结构体嵌套初始化
- code示例
struct Point { int x; int y; }p1; //声明类型的同时定义变量p1 struct Point p2; //定义结构体变量p2 //初始化:定义变量的同时赋初值。 struct Stu //类型声明 { char name[20];//名字 int age; //年龄 }; struct Stu s = { "zhangsan", 20 };//初始化 struct Node { int data; struct Point p; struct Node* next; }n1 = { 10, {4,5}, NULL }; //结构体嵌套初始化 struct Node n2 = { 20, {5, 6}, NULL };//结构体嵌套初始化
- 初始化:
-
-
结构体成员的访问
-
结构体变量 访问成员:
-
结构变量的成员是通过 点操作符 ( . )访问的。点操作符接受两个操作数。
-
-
结构体指针 访问指向变量的成员
-
code示例
#include <stdio.h> struct Stu //类型声明 { char name[15];//名字 int age; //年龄 }; struct Stu s = { "zhangsan", 20 };//初始化 void print(struct Stu* ps) { printf("name = %s age = %d\n", (*ps).name, (*ps).age); // name = lisi age = 18 //2. 使用结构体指针访问指向对象的成员 printf("name = %s age = %d\n", ps->name, ps->age); // name = lisi age = 18 } int main() { struct Stu s = { "zhangsan", 20 }; printf("name = %s age = %d\n", s.name, s.age); // name = zhangsan age = 20 strcpy(s.name, "lisi");//使用.访问name成员 s.age = 18;//1. 使用.访问age成员 printf("name = %s age = %d\n", s.name, s.age); // name = lisi age = 18 print(&s);//结构体地址传参 return 0; }
-
-
结构体传参
-
print1 和 print2 函数哪个好些?首选 print2函数。结构体传参的时候,要传结构体的地址。
-
原因:函数传参的时候, 参数 是需要 压栈 的。如果传递一个 结构体对象 的时候, 结构体过大 ,参数压栈的的系统 开销比较大 ,所以会导致 性能的下降 。
-
-
结构体传参的时候,要传结构体的地址。
-
C语言基础:009 C基础语法 - 结构体
最新推荐文章于 2024-05-03 20:15:59 发布