当前位置: 首页 > news >正文

C/C++结构体简单介绍

什么是结构体

C++的结构体处于很尴尬的地方,因为他是为了与c保持兼容而保留的(CSDN的一条评论)
不过对于算法比赛当中,我们只要记得,结构体比类要快很多就行。
但是,我学的是C呀~~~(不是)

如何使用结构体

引入

我们用一本书为例,书有 页数, 出版商, 作者,我们就可以这样定义

struct book{
	int page;
	string publicer;
	string author;
};

恭喜你,你已经会引入结构体了。

使用

int main(){
	struct book book1;
}

简化使用代码

这里是我们可以看到,每当我们想要使用Struct的时候,我们必须使用

struct book

这可还行,为了简化代码,我们可以这样写

typedef struct book book;

这里的意思是,在预处理(编译的第一步),我们首先会把book,直接替换成struct book。也就是说我们可以直接用book来定义我们的变量

int main(){
	book book1;
}

再简化,我们甚至可以直接这样简化

typedef struct{
	int page;
	string publicer;
	string author;
} book

这段代码的含义就是

struct book{
	int page;
	string publicer;
	string author;
};

typedef struct book book;

特别提醒

这代码能看就行,在C++里面是不会有任何问题的,但是在C里面就可能出现bug

struct LNode

{

    int data;

    struct LNode* next;

};

typedef struct LNode LNode;

typedef  LNode* LinkList;

typedef struct 
{
    int data;
    struct LNode* next;
}LNode,*LinkList;

这里第三行会出现LNode没有定义的问题。C只能简化成

typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode,*LinkList;
http://www.dtcms.com/a/79361.html

相关文章:

  • 深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)
  • Python 中下划线 “_” 的多面性:从变量到约定
  • java agent 学习
  • 阿里云平台服务器操作以及发布静态项目
  • 模拟实现string
  • 数据表100多字段如何写mapper文件的xml
  • 蓝桥杯单片机之AT24C02(基于自己对AT24C02的学习和理解)
  • spring源码(bean的实例化)——determineCandidateConstructors篇
  • Mac 上自动安装DeepSeek-R1 1.5B
  • DEFI币生态重构加速,XBIT去中心化交易所引领DEX安全新范式
  • springboot操作redis集群,注意事项
  • 如何写一个网关的系统
  • 网络安全漏洞的种类分为哪些?
  • chrome.webRequest API 和 Performance API
  • Java多线程与高并发专题——ThreadLocal 适合用在哪些实际生产的场景中?
  • JavaScript 导出功能全解析:从数据到文件
  • 算法刷题记录——专题目录汇总
  • 【css酷炫效果】纯CSS实现球形阴影效果
  • 【Linux笔记】动态库与静态库的制作
  • windows安装配置FFmpeg教程
  • 数字化工厂智能制造精益化管理智能工厂数据分析大数据解决方案精品PPT格式
  • Kafka-ConsumerRecord
  • SpringBoot前后端不分离,前端如何解析后端返回html所携带的参数
  • linux系统正常,浏览器却无法访问网页
  • 【PyTorch】y = x.flatten(2).permute(0, 2, 1)
  • GGUF量化模型技术解析与DeepSeek-R1-Distill-Llama-8B选型指南
  • VMware-workstation-17.6.3安装教程
  • 涨薪技术|Kubernetes(k8s)之认识Pod
  • 通义千问模型微调——swift框架
  • Python第六章02:列表操作——下标索引