首页 > 编程知识 正文

c语言结构体赋值给另一个结构体,c语言结构体能直接赋值吗

时间:2023-05-06 14:12:50 阅读:242022 作者:3454

C语言结构体能否整体赋值 先放结论

可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量,但是需要满足一个条件。

整体赋值规则

ansi/iso C规定:“相同类型的结构体是可以直接赋值的”;
合法赋值: 如date1和date2都是date结构体类型的变量,可以这样赋值:date1= date2;
非法赋值: 假设申明了两个成员列表完全一样的两个结构体类型(dataA,dateB),即使他们的成员列表是一样的,编译器会当作两个完全不同的类型,令两个结构体类型的变量间赋值,则是非法的。
但是这种问题不能靠试验获得准确的答案,因为你用的编译器支持并不表明其他编译器也支持。ansi/iso C规定的合法行为,编译器是必须支持的。

举例说明 #include "stdio.h"struct date{int i;float x;} d1={20,9.1};void main(){struct date d2;d2=d1;printf("%d, %fn",d2.i,d2.x);}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。