首页 > 其他分享 >数组指针强制转换为结构体指针

数组指针强制转换为结构体指针

时间:2022-11-16 23:23:36浏览次数:63  
标签:转换 数组名 数组 强制 指针 结构

前两天在看TI官方提供的BasicRF的源码时,发现一个看不懂的地方,就是将一个数组名强制转换为结构体指针,如下所示。

 

 

 

在上面的图片中,basicRfPktHdr_t是一个结构体,rxMpdu是一个长度为128个字节的数组名,pHdr是一个结构体指针。这让我很是清楚这么写是什么意思,因为以前从没有遇到,现在遇到了就算是进一步学习C语言了。

通过百度查询得到的结果是:这样转换编译其什么都不做,只是从语法上来说类型进行了改变而已,用新的类型的方式来解释原来内存中的值,即是让结构体按照自己的属性重新读取数组中的数据。看着并不是立刻能懂,下面贴上程序来解释一下。

 

如图,在程序中,首先在main函数前面定义了一个结构体,然后在main里面定义了一个数组,结构体指针,接着将数组指针强制转换结构体指针,最后输出。输出的格式是pt->parray[0],即是结构体自己属性值。编译运行看看会出现什么样的结果。

 

调试结果为1,明明结构体里面的值并没有初始化,居然还有结果,现在来分析结果为什么1。原因就在数组指针(a)强制转化为了结构体指针(pt),在这一转化过后,数组中的值就会和结构体的值一一对应,并且和结构体中的位置有关。现在大家应该明白是什么意思了吧。下面我们修改输出的值来验证一下。如下图所示。

从上面的图中可以看出我们的理解是正确的。但是值得注意的是,由于计算机存储的模式(大端模式/小端模式)以及计算机中字节对齐的问题可能会导致读出来的数据不对。这个是需要大家注意的地方。好了,今天就到这里,再见咯

 

 

 

 

长按扫描下方二维码或微信搜索“嵌入式小窝”关注公众号!!

 

标签:转换,数组名,数组,强制,指针,结构
From: https://www.cnblogs.com/amxiang/p/16897898.html

相关文章

  • 差分数组
    目录简介差分数组性质总结差分数组工具类应用应用1:Leetcode.1109题目题目分析代码实现应用2:Leetcode.370题目题目分析代码实现应用3:Leetcode.1094题目题目分析代码实现简......
  • 稀疏数组
    稀疏数组需求:编写五子棋游戏中,有存盘退出和续上盘的功能。分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。解决:稀疏数组(一种数据结构)......
  • PHP数组知识点整理
    */*Copyright(c)2016,烟台大学计算机与控制工程学院*Allrightsreserved.*文件名:text.cpp*作者:常轩*微信公众号:Worldhello*完成日期:2016年8月11日*版本号:V1......
  • 数组~筛法求素数
    题目描述用筛法求之N内的素数。 用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后......
  • 数组~冒泡法排序
    题目描述用冒泡法对10个整数从小到大排序。输入10个整数输出排序好的10个整数样例输入4853234453453451223012样例输出341230458512223434......
  • 数组~插队
    题目描述有一个按照升序已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。输入第一行,原始数列。第二行,需要插入的数字。输出排序后的数列......
  • 数组~明明的随机数
    题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数......
  • 287. 寻找重复数 ----- 快慢指针
    给定一个包含 n+1个整数的数组 nums,其数字都在 [1,n] 范围内(包括1和n),可知至少存在一个重复的整数。假设nums只有一个重复的整数,返回 这个重复的数。你......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:数组中的第K个最大元素
    题目:给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度......
  • leetcode26. 删除有序数组中的重复项(简单)
    题目:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在......