[学习资料] 原来结构体变量也可以直接赋值

[复制链接]
2654|29
 楼主| xinpian101 发表于 2024-5-16 20:39 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>

  2. typedef struct {
  3.   unsigned char  a;
  4.   unsigned int   b;
  5. } DD;

  6. DD dd;
  7. DD cc;
  8. int main()
  9. {
  10.    /* 我的第一个 C 程序 */
  11.    printf("Hello, World! \n");
  12.         dd.a=12;
  13.         dd.b=3214;
  14.         cc=dd;
  15.    printf("dd.a=%d;dd.b=%d\n",dd.a,dd.b);
  16.    printf("cc.a=%d;cc.b=%d\n",cc.a,cc.b);
  17.    return 0;
  18. }
猜猜结果是如何的?

 楼主| xinpian101 发表于 2024-5-16 20:39 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
北海道没有冬天 发表于 2025-8-30 15:07 | 显示全部楼层
在 C 语言中,结构体变量可直接赋值,编译器会自动按成员逐一拷贝,无需逐个赋值,简化操作,尤其适用于同类型结构体间数据传递。
sdlls 发表于 2025-9-4 13:32 | 显示全部楼层
结构体变量确实可以被直接赋值              
yeates333 发表于 2025-9-4 15:11 | 显示全部楼层
结构体直接赋值还支持 “函数返回结构体” 和 “结构体作为函数参数”,避免了用指针传递的繁琐
zerorobert 发表于 2025-9-4 19:18 | 显示全部楼层
如果结构体中含有指针成员,赋值后两个结构体的指针成员会指向同一块内存,可能导致数据混乱或内存泄漏。
tifmill 发表于 2025-9-4 22:23 | 显示全部楼层
如果结构体中包含指针成员,那么这种赋值方式只会复制指针本身的值,而不是指针所指向的内容。
kkzz 发表于 2025-9-6 10:12 | 显示全部楼层
赋值的两个结构体变量必须是完全相同的类型,否则编译器会报错。
pentruman 发表于 2025-9-6 13:03 | 显示全部楼层
在函数参数传递、数组操作等场景中,结构体赋值能显著简化代码。
adolphcocker 发表于 2025-9-6 15:51 | 显示全部楼层
结构体(struct)变量确实可以直接赋值
robincotton 发表于 2025-9-6 17:59 | 显示全部楼层
进行赋值的两个结构体变量必须是相同类型
nomomy 发表于 2025-9-6 19:44 | 显示全部楼层
结构体变量可以直接赋值,前提是类型相同。
dspmana 发表于 2025-9-6 21:27 | 显示全部楼层
这种赋值方式会将源结构体的所有成员逐个复制到目标结构体中。
lihuami 发表于 2025-9-8 09:44 | 显示全部楼层
结构体变量在C语言中可以像基本数据类型一样进行直接赋值。
saservice 发表于 2025-9-8 12:22 | 显示全部楼层
可以考虑使用指针传递或动态内存管理。
hilahope 发表于 2025-9-8 14:43 | 显示全部楼层
如果结构体包含指针成员,赋值后指针本身会被复制
averyleigh 发表于 2025-9-8 17:18 | 显示全部楼层
直接赋值是“值复制”,即所有成员值被复制
fengm 发表于 2025-9-9 11:26 | 显示全部楼层
赋值是浅拷贝,需注意指针成员的管理。
sheflynn 发表于 2025-9-9 14:06 | 显示全部楼层
直接赋值操作是浅拷贝              
mattlincoln 发表于 2025-9-9 16:34 | 显示全部楼层
这种赋值方式简洁且易于理解              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

130

主题

1651

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部