【学习笔记之我要C】结构体初阶

简介: 【学习笔记之我要C】结构体初阶

结构体的声明

  结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。

  结构成员的类型可以是标量、数组、指针、甚至是其他结构体

struct B {
  char c;
  short s;
  double d;
};
struct Stu {
  struct B sb;
  char name[20];
  int age;
  char id[20];
} s1,s2;//s1、s2也是结构体变量
//s1、s2是全局变量
int main() {
  //s是局部变量
  struct Stu s = { { 'a', 20 , 3.14}, "张三", 18, "1212213213"};//对象
  return 0;
}

结构体成员访问

struct B {
  char c;
  short s;
  double d;
};
struct Stu {
  struct B sb;
  char name[20];
  int age;
  char id[20];
};
int main() {
  //s是局部变量
  struct Stu s = { { 'a', 20 , 3.14}, "张三", 18, "1212213213"};//对象
  // . ->
  printf("%c\n\n", s.sb.c);
  struct Stu* ps = &s;
  printf("%c\n", (*ps).sb.c);
  printf("%c\n", ps->sb.c);
  return 0;
}

结构体传参

struct B {
  char c;
  short s;
  double d;
};
struct Stu {
  struct B sb;
  char name[20];
  int age;
  char id[20];
};
void print1(struct Stu t) {
  printf("%c %d %lf %s %d %s\n", t.sb.c, t.sb.s, t.sb.d, t.name, t.age, t.id);
}
void print2(struct Stu* ps) {
  printf("%c %d %lf %s %d %s\n", ps->sb.c, ps->sb.s, ps->sb.d, ps->name, ps->age, ps->id);
}
int main() {
  struct Stu s = { { 'a', 20 , 3.14}, "张三", 18, "1212213213" };
  print1(s);//传值调用
  print2(&s);//传址调用
  return 0;
}

函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。

 栈是一种数据结构,特点是先进的后出,后进的先出;

 给栈中存放数据的操作叫压栈,删除栈中数据的操作叫出栈;

 每个函数调用都会在内存的栈区上开辟一块空间。

 所以我我们在给结构体传参的时候要尽量传地址。


目录
相关文章
|
8月前
|
C语言
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
85 0
|
8月前
|
存储 人工智能 C语言
『C语言初阶』第八章 -结构体
『C语言初阶』第八章 -结构体
|
8月前
初阶结构体
初阶结构体
41 0
|
存储 编译器 C语言
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)(上)
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)
124 0
|
C语言
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)(下)
【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)(下)
299 0
|
小程序 C语言
【C语言初阶】 结构体入门
C语言提供了一些由系统已定义好的数据类型,如:int,float,char等,用户可以在程序中用它们定义变量,解决一般的问题,但我们要处理的问题往往比较复杂,只有系统提供的类型还不能满足应用的需求,C语言允许用户根据自己建立一些数据类型,并用它来定义变量。
|
存储 编译器 C语言
【c语言进阶】结构体最常用知识点大全 上
【c语言进阶】结构体最常用知识点大全 上
96 0
|
存储 编译器 Linux
【c语言进阶】结构体最常用知识点大全 中
【c语言进阶】结构体最常用知识点大全 中
106 0
【初阶C语言】初阶结构体详细讲解
【初阶C语言】初阶结构体详细讲解