首页 > 其他分享 >结构体系列

结构体系列

时间:2024-09-09 18:50:35浏览次数:8  
标签:体系 struct int m1 m2 赋值 结构

一.结构体的初始化

方法1

struct x
{
    int a;
    int b;
};
struct x m = {1,2}

方法2

struct x
{
    int a;
    int b;
};
struct x m = {.a=1,.b=2};

注意在C99上才可以这样用

二.结构体变量之间的赋值

方法1

struct x m1;
struct x m2 = {.a=1,.b = 2};
m1.a = m2.a
ma.b = m2.b

方法2

struct x m1;
struct x m2 = {.a=1,.b = 2};
m1 = m2;

方法3

struct x m1;
struct x m2 = {.a=1,.b = 2};
memcpy(&m1,&m2,sizeof(m1));

需要理解的本质是,不论是变量、数组、结构体都是内存中的一块空间而已。他们之间的赋值只不过是把一块空间中的内容赋值到另一块空间中而已。

三.空结构体的占位作用

struct x
{
};

定义一个空结构体struct x,用sizeof(x)输出为1。说明一个空的结构体也会占用1个字节的空间。扩展开来,C语言中每一个定义的内容都是要占用空间的。

四.用结构体指针简化数据的解析

1.将数组接收到的数据通过结构体指针解析

#pragma pack(1)//强制对齐方式为一字节对齐
typedef stru

标签:体系,struct,int,m1,m2,赋值,结构
From: https://blog.csdn.net/sycc512/article/details/142021048

相关文章

  • CCF推荐B类会议和期刊总结:(计算机体系结构/并行与分布计算/存储系统领域)
    目录前言B类会议1.SoCC2.SPAA3.PODC4.FPGA5.CGO6.DATE7.HOTCHIPS8.CLUSTER9.ICCD10.ICCAD11.ICDCS12.CODES+ISSS13.HiPEAC14.SIGMETRICS15.PACT16.ICPP17.ICS18.VEE19.IPDPS20.Performance21.HPDC22.ITC23.LISA24.MSST25......
  • 算法与数据结构——图简介
    图图(graph)是一种非线性数据结构,由顶点(vertex)和边(edge)组成。我们可以将图G抽象地表示为一组顶点V和一组边E的集合。以下示例展示了一个包含5个顶点和7条边的图。如果将顶点看做节点,将边看做连接各个节点的引用(指针),我们就可以将图看作一种从链表拓展而来的数据结构。如下图,相较于......
  • PLC结构化文本(ST)——接口引用转换(__QUERYINTERFACE)
    PLCStructuredTextObjectOrientedProgrammingPLC结构化文本(ST)——接口引用转换(__QUERYINTERFACE)__QUERYINTERFACE运算符__QUERYPOINTER是IEC61131-3的扩展,该运算符允许在运行时将一个接口引用转换成另一个接口的引用。返回值BOOL类型:True表示转换成功,Flase表示转换失败。......
  • PLC结构化文本(ST)——接口指针转换运算符(__QUERYPOINTER)
    PLCStructuredTextObjectOrientedProgrammingPLC结构化文本(ST)——接口指针转换运算符(__QUERYPOINTER)__QUERYPOINTER运算符__QUERYPOINTER是IEC61131-3的扩展,该运算符允许在运行时将功能块的接口引用转换为指针。返回值BOOL类型:True表示转换成功,Flase表示转换失败。出于......
  • 【数据结构】基本概念和术语
    数据(data)定义是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素(dataelement)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据对象(dataobject)是性质相同的数据元素的集合,是数据......
  • 数据结构与算法(三)线性表的定义与抽象数据类型
    目录一、感受线性表的存在二、线性表的定义三、考题模拟1、请问公司的组织架构是否属于线性关系?2、那么班级同学的友谊呢?3、那么班级的点名册是不是线性表?四、抽象数据类型1、数据类型的定义:2、抽象数据类型一、感受线性表的存在    从这一篇开始,我们将介......
  • 实例:使用 gdb 查看进程内存中的数据结构
    代码示例首先,创建一个简单的链表程序linked_list.c,以演示如何使用gdb查看内存中的数据结构。#include<stdio.h>#include<stdlib.h>//定义链表节点结构体typedefstructNode{intdata;structNode*next;}Node;//添加新节点到链表的尾部voidappen......
  • PLC结构化文本(ST)——异常捕获(__TRY__CATCH)
    PLCStructuredTextObjectOrientedProgrammingPLC结构化文本(ST)——异常捕获(__TRY__CATCH)异常处理异常是在程序执行期间出现的问题。C#中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。---C#......
  • 数据结构-堆-详解
    数据结构-堆-详解1.性质大根堆小根堆2.实现2.1structHeap、HeapInit、HeapDestroy2.2HeapPushAdjustUp2.3HeapPopAdjustDown2.4HeapTop、HeapSize、HeapEmpty3.应用3.1堆排建堆排序3.2TopK问题1.性质堆是一种特殊的完全二叉树,其父节点总是不大于/不小于子节......
  • C++学习笔记(曾经我看不懂的代码2:基于范围的for循环、auto使用、stl容器、template模
    不知不觉c++程序设计:标准库已经看了一大半了,学到了很多,很多曾经在网上和在书上看到却看不懂的代码,在看完标准库中的大半内容以后,都能大致的理清代码的含义。代码模板一:for(auto&a:arr)1、基于范围的for循环:a为迭代变量,arr为迭代范围,&表示引用。写一个例子:#include<ios......