怎么样将一个结构体如何赋值的值赋值给另一个结构体如何赋值?(两个结构体如何赋值的大小一样,也就是理解为数据备份的意思~~~)

结构体变量直接赋值给结构体变量
以前在使用结构体时没有在结构体变量之间直接赋值,今天同事在查看别人的代码时,发现有两个结构体变量直接赋值的语句当时感觉这个语句不对,认为在一个结构体里边,既有一般的无符号整形与数组,因为数组的赋值是不能直接赋值,要内存拷贝,从这里推理所以认为这个语句不对。于是问了一下,我当时以为是结构体指针变量的赋值,认为没有问题。还和同事争论了一番,当他让我看源代码时,发现是变量间的直接赋值,下意识中的判断是不对,原因就和之前他理解的一样。
于是晚上到住处在网上查了一下,说是可以的,因为是同样的数据类型,而C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。
同时敲了一段很简单的代码测试一下,看到底是为什么。发现确实是这样。那么C语言在变量间的赋值是如何进行的呢?
再查找发现在C中一个变量名其实就是一个地址对应着一块内存的起始地址,赋值操作符就是找到这块内存的起始地址。
网上一个关于结构体变量复制的帖子
typedef struct
unsigned char d[10];
int main(void)
TestStruct a = {0};
TestStruct b = {0};
a.d[2] = 5;
printf("a.a:%d \n a.b:%d \n a.c:%d \n a.d[2]:%d \n", a.a, a.b, a.c,
printf("b.a:%d \n b.b:%d \n b.c %d \n b.d[2]:%d \n", b.a, b.b, b.c,
当然结构体数组也可以直接赋值给结构体数组,方法类似,程序如下:
&stdlib.h&
&string.h&
typedef struct param{
param_t global_param[3];
int main()
&param_t lbs_param[3];
&global_param[0].a = 1;
&global_param[0].b = 2;
&global_param[0].c = 3;
&global_param[1].a = 4;
&global_param[1].b = 5;
&global_param[1].c = 6;
&global_param[2].a = 7;
&global_param[2].b = 8;
&global_param[2].c = 9;
&for(i = 0; i & 3;
&lbs_param[i] = global_param[i];
&for(i = 0; i & 3;
& & printf("%d :
%d,%d,%d\n",i,lbs_param[i].a,lbs_param[i].b,lbs_param[i].c);
& & return
输出结果为:
[root@localhost tmp]#
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。怎么将一个结构的值附到另一个结构上 - C++ Builder当前位置:& &&&怎么将一个结构的值附到另一个结构上怎么将一个结构的值附到另一个结构上&&网友分享于:&&浏览:3次如何将一个结构的值附到另一个结构上.typedef & struct
typedef & struct
& TEMPSTRUCT;
typedef & struct
///////////////
数据结构变动后.重新定义了结构.
typedef & struct
& TEMPSTRUCT;
typedef & struct
CD2 N[64];
这样的话. & 以下的怎么附值呢.
EF2 & T2;//这个T2已经初始化了值.
问题是如何将T2的值附到T1呢.
谢谢各位. ------解决方案--------------------memcpy(&T1,&T2,sizeof(T1));
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有新人求助,怎样读取一个大小不确定的结构体数据
[问题点数:40分]
新人求助,怎样读取一个大小不确定的结构体数据
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2015年4月 C/C++大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。把结构体的一个变量指向另一个结构体的变量是什么意思_百度知道

我要回帖

更多关于 结构体如何赋值 的文章

 

随机推荐