一个结构体 = 另一个结构体(同类型结构体之间可直接赋值操作)

2023-05-16

两个同类型结构体变量可以直接赋值,不同类型结构体不能直接赋值。

#include <stdio.h>

struct TEST{
int a;
int b;
char c[3];
char *ptr;
};

int main(){
	struct TEST a={1,2,{'a','b','c'}, (char *)"jkjk"};
	struct TEST b={0};
	printf("a.a=%d a.b=%d a.c[0]=%c a.ptr=%s\n", a.a, a.b, a.c[0], a.ptr);
	printf("b.a=%d b.b=%d b.c[0]=%c\n", b.a, b.b, b.c[0]);
	b = a;
	printf("b.a=%d b.b=%d b.c[0]=%c b.ptr=%s\n", b.a, b.b, b.c[0], b.ptr);
	return 0;
}

运行结果(VS2019):
在这里插入图片描述

还有种方法使两个同类型结构体内容相同就是用memcpy函数来拷贝,也是可以的,因为结构体本身就是一个内存区。

int main() {
	struct TEST a = { 1,2,{'a','b','c'}, (char *)"jkjk" };
	struct TEST b = { 0 };
	printf("a.a=%d a.b=%d a.c[0]=%c a.ptr=%s\n", a.a, a.b, a.c[0], a.ptr);
	printf("b.a=%d b.b=%d b.c[0]=%c\n", b.a, b.b, b.c[0]);
	//b = a;
	memcpy((char *)&b, (char *)&a, sizeof(a));
	printf("b.a=%d b.b=%d b.c[0]=%c b.ptr=%s\n", b.a, b.b, b.c[0], b.ptr);
	return 0;
}

这里要提一句,数组不能像结构体那样直接赋值。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个结构体 = 另一个结构体(同类型结构体之间可直接赋值操作) 的相关文章

随机推荐

  • SLAM 轨迹评估方法 evo(包括GPS坐标转换成TUM)

    安装 evo pip span class token function install span evo upgrade no binary evo SLAM轨迹 运行ORBSLAM rosrun ORB SLAM3 Stereo Voc
  • 【SLAM】VINS-fusion,VINS-Mono 编译,使用T265测试

    安装 VINS fusion VINS Mono 将vins mono 下载到ros工作空间catkin ws里面 span class token builtin class name cd span home jiangz catkin
  • 总结使用layui-laydate日历控件遇到的问题

    一 利用layui laydate日历控件选择月份 1 问题 选择月份时不能实现鼠标直接点击选择 xff0c 选择之后需要按 确定 原来的代码 html文件 xff1a span class token operator lt span d
  • 【pytorch】torch1.7.1安装、查看torch版本、GPU是否可用

    在conda 虚拟环境下安装torch 61 61 1 7 1 43 GPU版本 本机环境 CUDA 11 0Python 3 7 安装torch1 7 1 官网搜索确认需要下载的对应本机cuda的torch版本 xff0c 使用在线下载即
  • S.BUS协议

    内容 本篇文章主要是S BUS协议原理介绍 xff0c 并实现了arduino输出S BUS数据 S BUS简介 SBUS是一个接收机串行总线输出 xff0c 通过这根总线 xff0c 可以获得遥控器上所有通道的数据 目前很多模型及无人机电
  • window10+TensorRT-8.2.5.1+yolov5 v6.2 c++部署

    一 准备工具 1 1 visual studio下载安装 参考 xff1a vs2019社区版下载教程 xff08 详细 xff09 Redamancy 06的博客 CSDN博客 vs2019社区版 1 2 显卡驱动 43 cuda 43
  • openstack创造实例报:找不到有效有效主机,没有足够主机,而且点击实例还报500

    第一次接触openstack时候 xff0c 再创建实例时候右上方就弹出创建失败 实例 xxx 执行所请求操作失败 xff0c 实例处于错误状态 请稍后再试 错误 找不到有效主机 xff0c 原因是 没有足够的主机可用 这个问题是因为你的o
  • Kubernetes v1.21 发布,新版本主要特性

    美国时间 4 月 8 日 xff0c Kubernetes v1 21 正式发布 xff0c 这是 Kubernetes 在 2021 年发布的第一个版本 此版本包含 51 项增强功能 xff1a 13 项增强功能已进入稳定阶段 xff0c
  • 基于51单片机的火焰报警器

    基于51单片机的火焰报警器 一 模块描述 1 可以检测火焰或者波长在760纳米心1100纳米范围内的光源 2 探测角度60度左右 xff0c 对火焰光谱特别灵敏3灵敏度可调 图中蓝色数字电位器调节 3 对火焰的探测距离 跟灵敏度和火焰强度有
  • STM32的大小端模式——什么是大小端模式?

    目录 1 什么是大小端模式2 为什么会有大小端模式之分3 什么情况需要考虑大小端模式4 常见的设备的大小端模式5 测试大小端模式例程6 大小端转化例程 1 什么是大小端模式 大端模式Big Endian xff1a 高字节存于内存低地址 x
  • MDK KEIL 烧录STM32下载错误:Flash Timeout.Reset the Target and try it again.解决办法(芯片解锁 解除读报护)

    使用keil开发STM32点下载时出现下面的报错 xff1a 点确定后 xff1a 出现如上情况很可能是该芯片锁死 xff0c 即设置了读写保护 解决方法是想办法解锁芯片 xff0c 可以使用ST Link配合stlink utility软
  • Visual Studio 如何创建C/C++项目

    这里不说Visual Studio安装过程 xff0c 默认已经安装好软件 对Visual Studio安装有疑问的可以参考 xff1a Visual Studio安装教程 1 打开软件Visual Studio xff0c 点击创建新项目
  • Visual Studio安装教程

    本文章主要记录Visual Studio2019的安装过程 xff0c 由于只用于开发C C 43 43 xff0c 因此关于其它语言支持将不安装 xff0c 仅供参考 一 下载 1 下载地址在微软官网 xff1a 微软官网 2 选择菜单栏
  • CAN波形解析实例(1)

    这里的CAN数据波形抓取的是两个STM32F103设备通过CAN通信一方发送另一方接收 xff0c CAN收发器使用的是TJA1051 xff08 扩展帧发送数据ID 61 0x18DAF110 Data 61 0x06 0x08 xff0
  • GPIO推挽输出和开漏输出模式区别详解

    以STM32参考手册中的GPIO输出配置图为例 xff1a 看到输出驱动器虚线框中的内容 xff0c 输出驱动器中的P MOS和N MOS两个MOS管就是实现推挽输出和开漏输出的关键 推挽输出模式下 xff0c P MOS和N MOS都正常
  • 树莓派新手入门教程

    截至目前 20210405 xff0c 树莓派最新版本为4B xff0c 如下图所示 xff1a 树莓派3B 43 的主要的部件位置 xff1a 下载最新Raspbian系统镜像 1 首先进入树莓派官网 xff1a https www ra
  • 公司研发工具链体系化建设,帮助公司从混乱走向正规

    一 软件发布平台 没办法对外提供二进制库下载便捷方式不方便部署 xff0c 不同版本之间预览和说明性欠缺问题 可以参考的解决方案 xff1a https www cnblogs com djlsunshine p 11164770 html
  • 关于写代码的几个看法

    最近在新公司负责bug的修复 xff0c 发现很多的代码逻辑理解起来有些困难 现在将其中观察到的现象列出来 xff0c 谈谈自己的看法 1 类过大 对于代码来说 xff0c 我们在编写的时候最好做到SRP Single Responsibi
  • 树莓派VNC server设置开机自启动

    目前已测试OK的几个方法 xff1a 方法1 xff08 作为服务自启动 xff09 xff1a 在 etc init d 中创建一个文件 例如tightvncserver xff1a span class token function s
  • 一个结构体 = 另一个结构体(同类型结构体之间可直接赋值操作)

    两个同类型结构体变量可以直接赋值 xff0c 不同类型结构体不能直接赋值 span class token macro property span class token directive hash span span class tok