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

结构体常见问题

问题一: 结构体的自引用

错误: 

typedef struct _Pos{
    int x;
    int y;
    struct _Pos z;
}pos;

定义一个结构体,其内部又定义了一个同类的结构体变量,这是一种错误。(因为如果你在结构体内部定义自己类型的结构体变量,在定义结构体的过程中,它会不断地去创建新的结构体变量,一直递归下去,没完没了) -- 有的编译器会检测到这种错误的写法。


正确:
我们可以在结构体内部放一个指向自己类型的指针,这样就不会出现上面的问题了。
typedef struct _Pos{
    int x;
    int y;
    struct _Pos *z;
}pos;

 

问题二:  结构体指针 

pos* ptr;       // 定义一个结构体指针

注意下面的操作是不合法的:

ptr+1;             //  对于结构体,因为其内部存储数据类型并不一样,所以我们无法使用指针                               或者下标运算符进行访问内部数据 

(*ptr)+1;         // ptr是指向结构体的指针,内部存放的是结构体所在的地址,虽然结构体所在的地址(其首地址),和其第一个元素的(首)地址是一样的,但是*ptr的结果并不是结构的第一个元素,而表示的是ptr指向的是结构,因为ptr是结构类型的指针。对于结构体和一个整数像加时未定义的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 项目引用图片后乱码?
  • 苹果WWDC 2024或将推出AI生成的表情符号并宣布与OpenAI的合作|TodayAI
  • vue小记——上传图片小组件
  • 51单片机的最小系统详解
  • 全球点赞最高的人颜廷利:真正的人生目标是什么
  • win11安装MySQL
  • sqlites数据库读取,仅适用于数据少的数据库查询
  • Facebook:打开数字社交的魔盒
  • ARM day5
  • 6-5 统计二叉树结点个数
  • 【第八章】多线程——Thread类
  • 微信小程序如何跳转微信公众号
  • 苹果手机备忘录共享到微信,为何显示不支持的类型
  • 冷冻式压缩空气干燥机常见几种系统原理图
  • Vue从入门到实战Day07
  • go语言学习初探(一)
  • magento 货币换算
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 从零搭建Koa2 Server
  • 简析gRPC client 连接管理
  • 坑!为什么View.startAnimation不起作用?
  • k8s使用glusterfs实现动态持久化存储
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 数据可视化之下发图实践
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​什么是bug?bug的源头在哪里?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ###STL(标准模板库)
  • #Linux(Source Insight安装及工程建立)
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT(TCP网络编程-服务端)
  • #Ubuntu(修改root信息)
  • (02)vite环境变量配置
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (LLM) 很笨
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (第30天)二叉树阶段总结
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (十五)使用Nexus创建Maven私服
  • .equals()到底是什么意思?
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .NET与 java通用的3DES加密解密方法
  • [14]内置对象
  • [7] CUDA之常量内存与纹理内存
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [BZOJ3223]文艺平衡树
  • [C++] 容器适配器:深入理解Stack与Queue的底层原理
  • [C++][opencv]基于opencv实现photoshop算法图像剪切
  • [CSS] - 修正IE6不支持position:fixed的bug