1. struct定义

#include<stdio.h>

#include<stdlib.h>

//最宽基本成员,char,int,double,结构体数组都不是最宽基本成员

//结构体大小必须可以整除最宽基本成员,是最宽基本成员的整数倍

//结构体成员地址减去结构体首地址,就是偏移量,偏移量必须可以整除成员的基本类型

structinfo{

charc;

doublesh;

charch[9];

};

structinfo1

{

shortsh1;

intsh;

charch[19];

};

voidmain(){

structinfo1info11 = { 10, 200,"123456" };

printf("%p\n",&info11);

printf("%p\n",&info11.sh1);

printf("%p\n",&info11.sh);

printf("%p\n", &info11.ch);

getchar();

}

2.结构体深拷贝,浅拷贝

浅拷贝:共享一块内存,一个改了,另外一个也将改变

深拷贝:拷贝内存的内容

测试深拷贝和浅拷贝的例子如下:

A:首先,测试浅拷贝的情况

浅拷贝是通过结构体属性分别赋值来实现的。

这里的hello变成了kello了,说明这里通过结构体的浅拷贝修改了原来结构体的内容

B:深拷贝的情况



结构体对齐,结构体深拷贝和浅拷贝相关推荐

  1. C 语言结构体成员赋值的深拷贝和浅拷贝

    作者 | 李肖遥       责编 | 欧阳姝黎 最近在做通信协议的解析处理.传递分析等问题,总是遇到通信帧中的结构体拷贝等问题,遇到了一些坑,也是比较基础但是易错的C语言知识,一起来探究一下结构体的 ...

  2. [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝...

    一.结构体存储 #include<stdio.h> #include<stdlib.h>struct info{char c; //1 2 4 8 double num; // ...

  3. C语言之结构体以及结构体对齐访问

    1:简单理解,结构体就是数组的进一步发展,数据的优点和缺陷在于数据里面是元素类型必须相同,但是结构体没有这个要求,结构体里面元素的类型可以相同也可以不同. 2:结构体的定义: struct stude ...

  4. 结构体对齐,#pragma pack

    一.结构体对齐 首先通过一个例子说明结构体对齐,可以看到,下面这个结构体占32字节(32位) typedef struct {double d;short s;int i;char c;short s ...

  5. C语言结构体对齐的不足

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105065657 C ...

  6. 这个结构体对齐输出有意思

    这个题目是我在群里看到大家讨论的,既然是讨论的了,那我就拿出来说说,因为笔试面试的时候,可能就会遇到这样的题目. 实例代码 #include "stdio.h" #include ...

  7. C语言结构体对齐[转]

    C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...

  8. linux windows 结构体,Linux下C语言——结构体对齐

    结构体对齐的步骤: 1.结构体各成员对齐 2.整个结构体圆整 结构体对齐的特定对齐值: 1.自身对齐值: 自身对齐值就是结构体变量里每个成员的自身大小; 2.指定对齐值: 指定对齐值是由宏#pragm ...

  9. 再看结构体对齐与小端联合问题

    再看结构体对齐与小端联合问题 @(组成原理) 先再次回看一道题目的分析. (2012.15)某计算机存储器按字节编址,采用小端方式存放数据.假定编译器规定int型和short型长度分别为32位和16位 ...

最新文章

  1. mysql 分页排序
  2. linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...
  3. iOS--动画demo--Launch Image淡出效果
  4. 部署docker-consul群集,Harbor构建Docker私有仓库
  5. hibernate4调用mysql存储过程_hibernate调用存储过程
  6. xv6/调度算法及并发程序设计
  7. SAP License:SAP中的权限与破解
  8. 有关Kali处理源的方法
  9. WCF服务启动时遇到AddressAccessDeniedException
  10. Android adb重启手机
  11. 智慧交通综合管理平台建设方案
  12. 如何下载无水印的抖音视频?
  13. 说说react-custom-scrollbars插件在react hooks版本中的使用
  14. 实习周记----第三周
  15. Do we need an operating system?
  16. css实现跑马灯效果
  17. 如何让腾讯微博搜索排名靠前?
  18. android+平板+输入法,搜狗推首款Android3.0平板电脑输入法
  19. 计算机网络技术毕业生实习报告_计算机网络技术实习报告
  20. HNOI2011 数学作业

热门文章

  1. opengl加载显示3D模型MDL类型文件
  2. OpenCASCADE:教程概述
  3. boost::lexicographical_compare相关的测试程序
  4. boost::pfr::for_each_field相关的测试程序
  5. boost::mp11::mp_empty相关用法的测试程序
  6. boost::log模块测试get_attributes()这个const方法可以获取线程模型内部的互斥锁
  7. boost::hana::drop_front用法的测试程序
  8. boost::gil::is_homogeneous用法的测试程序
  9. boost的chrono模块线程时钟的测试程序
  10. ITK:两个图像的基本全局注册