C语言结构体能否整体赋值


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

整体赋值规则
ansi/iso C规定:“相同类型的结构体是可以直接赋值的”;
合法赋值: 如date1和date2都是date结构体类型的变量,可以这样赋值:date1= date2;
非法赋值: 假设申明了两个成员列表完全一样的两个结构体类型(dataA,dateB),即使他们的成员列表是一样的,编译器会当作两个完全不同的类型,令两个结构体类型的变量间赋值,则是非法的。
 

#include <stdio.h>

typedef struct {
    int a;
    int b;
} str_t;

int main()
{
    str_t str1;
    str_t str2;
    str1.a = 5;
    str1.b = 6;

    str2 = str1;
    printf("%d\n", str2.a);
    printf("%d\n", str2.b);
}

输出结果:

5

6

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值