当前位置: 首页 > 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;

相关文章:

  • 深度学习:从零开始的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教程
  • 重庆做网站嘉兴公司/互联网站
  • 乌鲁木齐做网站多少钱/今日新闻简报
  • 中国最好网站建设公司/上海最专业的seo公司
  • 做类似起点的网站/微信小程序免费制作平台
  • wordpress站点切换为中文/淘宝指数网站
  • 长沙招聘网58同城/seo搜索是什么