c++ struct

与数组一样,结构体的指针指向首地址。

【数组 与 struct 互相赋值】

将数组中元素赋值给struct中元素(类型需一致,否则保持默认值),若数组元素少,struct中未被赋值的保持默认值。若数组元素多,对应位置的元素会赋值给struct。

#include<iostream>

struct MyStruct
{
    short n1;    //默认0
    short n2;
};

int main()
{    
    uint16_t naWidth[4] = { 0,1,2,3 };            //uint16_t是unsigned short,可以给short型赋值
    MyStruct *pMyStruct = (MyStruct*)naWidth;    //naWidth默认指向首地址,所以n1=0,n2=1
    pMyStruct = (MyStruct*)(naWidth + 2);        //pMyStruct指向第3个地址,n1=2,n2=3。
    pMyStruct->n1 = 10;                            
    pMyStruct->n2 = 11;                            //naWidth第3、4个元素被改为10、11,因为pMyStruct指向的内存就是第3、4元素的内存
    return 0;
}

【struct 赋给 数组】 

#include<iostream>

struct MyStruct
{
    short n1;    //默认0
    short n2;
};

int main()
{
    uint16_t nArray[4] = { 0,1,2,3 };        //uint16_t是unsigned short,可以给short型赋值
    MyStruct *s_My = (MyStruct*)nArray;        //nArray默认指向首地址,所以n1=0,n2=1
    memcpy(nArray + 2, s_My, 2 * sizeof(uint16_t));    //将n1、n2的值赋给数组的后2个元素。即数组变为{0,1,0,1}

    s_My = (MyStruct*)(nArray + 2);            //n1=2,n2=3

    return 0;
}

 

【值得一看】

C语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数_我一直都在-赵玉强的技术博客_51CTO博客

[C++] 结构体Struct类型和变量定义_丶布布的博客-CSDN博客

posted @ 2023-09-22 10:33  夕西行  阅读(28)  评论(0编辑  收藏  举报