c语言结构体数组赋值

我这样做可以吗?stu[1]=stu[2];这两个都是结构体数组的元素.... 我这样做可以吗? stu[1]=stu[2]; 这两个都是结构体数组的元素. 展开
 我来答
coolxp2005
2009-01-13 · TA获得超过823个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:164万
展开全部
相同类型的结构体是可以直接赋值的,这是ANSI/ISO C规定的。ANSI/ISO C规定的合法行为,编译器是必须支持的。

但不能进行比较,例如
if (stu[1] == stu[2])是不允许的。

这种问题不能靠试验获得准确的答案,因为你用的编译器支持并不表明其他编译器也支持。
107510320
2009-01-05
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
答案是肯定的,你可以写一个程序验证一下嘛,给你一个
#include<stdio.h>
struct student
{
int a;
int b;
int c;
} stu[3]={{1,1,1},{2,2,2},{3,3,3}};
main()
{
int i;
for(i=1;i<3;i++)
printf("%5d%5d%5d\n",stu[i].a,stu[i].b,stu[i].c);
stu[1]=stu[2];
for(i=1;i<3;i++)
printf("%5d%5d%5d\n",stu[i].a,stu[i].b,stu[i].c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zyq_07_28
2009-01-05 · TA获得超过258个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:0
展开全部
如果你写过=的重载函数就可以.
不然就只好一个个成员赋值, 要么用memcpy(stu[1], stu[2], sizeof(stu[1]))也可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huafeng86999
2009-01-05 · TA获得超过277个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:272万
展开全部
不用理哪些只知道c++的人的话,不用管c++的什么重载函数,
在标准c语言中,对于大字节类型编译器默认可以直接赋值。
你这样赋值是没有问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伊·梵beec
2009-01-05 · TA获得超过2160个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1372万
展开全部
简单的结构体直接赋值是没有问题的

如果有指针成员,赋值的结果可能不是你想要的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式