C语言-结构体(7)

简介: C语言-结构体(7)

思维导图:


1. 结构体的声明

1.1 结构的基础知识

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


1.2 结构成员的类型

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


1.3 结构体变量的声明、定义和初始化

例1:


#include 
struct Book
{
  char name[100];
  int page;
  float price;
}s4, s5;//全局变量
int main()
{
  struct Book s1, s2, s3;//结构体的局部变量
  return 0;
}

2. 结构体成员的访问

例:


#include 
struct Book
{
  char name[100];
  int page;
  float price;
};
int main()
{
  struct Book s1 = { "C语言程序设计",500,66.66f };//结构体变量的创建和初始化
  printf("《%s》 %d页 %f元\n", s1.name, s1.page, s1.price);
            //打印方法:结构体变量.成员变量
  struct Book* p = &s1;
  printf("《%s》 %d页 %f元\n", (*p).name, (*p).page, (*p).price);//不推荐使用
  printf("《%s》 %d页 %f元\n", p->name, p->page, p->price);
        //结构体指针->成员变量名
  return 0;
}

输出结果:


输出:

《C语言程序设计》 500页 66.660004元

《C语言程序设计》 500页 66.660004元

《C语言程序设计》 500页 66.660004元

3. 结构体传参

例:


#include 
struct Book
{
  char name[20];
  int page;
  double price;
};
void Print(struct Book s1)
{
  printf("《%s》 %d页 %f元\n", s1.name, s1.page, s1.price);
}
void Print2(struct Book* p)
{
  printf("《%s》 %d页 %f元\n", p->name, p->page, p->price);
}
int main()
{
  struct Book p = { "C语言程序设计",500,66.6 };
  Print(p);//传值调用
  Print2(&p);//传址调用
  return 0;
}

输出结果:


《C语言程序设计》 500页 66.600000元

《C语言程序设计》 500页 66.600000元

一般都使用传址调用。


写在最后:

以上就是本篇文章的内容了,感谢你的阅读。


如果喜欢本文的话,欢迎点赞和评论,写下你的见解。


如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。


之后我还会输出更多高质量内容,欢迎收看。


相关文章
|
3天前
|
C语言
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
9 0
|
8天前
|
程序员 C语言
【C语言】初步认识结构体
【C语言】初步认识结构体
15 0
|
3天前
|
存储 C语言
C语言进阶⑮(自定义类型)(结构体+枚举+联合体)(结构体实现位段)(下)
C语言进阶⑮(自定义类型)(结构体+枚举+联合体)(结构体实现位段)
10 0
|
22小时前
|
存储 C语言
C语言结构体深度剖析
C语言结构体深度剖析
|
1天前
|
编译器 C语言 C++
c语言:自定义类型——结构体
c语言:自定义类型——结构体
7 0
|
1天前
|
存储 开发框架 编译器
C语言进阶—自定义类型:结构体,枚举,联合
C语言进阶—自定义类型:结构体,枚举,联合
|
1天前
|
存储 编译器 Linux
【C语言】自定义类型(结构体+枚举+联合)
【C语言】自定义类型(结构体+枚举+联合)
|
2天前
|
编译器 C语言 C++
c语言结构体的内存对齐
c语言结构体的内存对齐
|
3天前
|
存储 C语言
C语言进阶⑮(自定义类型)(结构体+枚举+联合体)(结构体实现位段)(中)
C语言进阶⑮(自定义类型)(结构体+枚举+联合体)(结构体实现位段)
10 0
|
3天前
|
编译器 C语言 C++
C语言进阶⑮(自定义类型)(结构体+枚举+联合体)(结构体实现位段)(上)
C语言进阶⑮(自定义类型)(结构体+枚举+联合体)(结构体实现位段)
7 0