• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

同是结构体变量,可以相互赋值吗

liuxiaofei126 2019-02-26 浏览量:1922
比如结构体变量a和b,a中也有成员,b中也有成员,a=b;可以吗,怎么才可以a=b;
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 对于不含指针的结构体,可以直接赋值。如果结构体中含有指针,结构体赋值不能简单的直接赋值了,而需要为指针成员另外分配内存,并将数据拷贝过去。
    • 发布于 2019-02-26
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:12
  • memcpy(basizeof(a))

    这样逐个字节复制,或者结构体内部变量赋值,比如 a.val1=b.val1; a.val2=b.val2;

    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体里的内容赋值应该是,a.对象=值;   结构体不能直接复制,直接复制也可以用指针

    比如&a=&b;

    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用指针指向结构体,或者做一个for循环一个个赋值
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 只要A、B昌同一种结构体,也就是类型一样,就可以使用=
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 不能直接赋值的 但可以设置指针地址指向另一个结构体
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体赋值的时候要引用成员才能赋值,如果你的结构体两个都一样,里面的各个成员类型一样,也可以直接赋值。
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 是可以的,要结构体中的成员都是一样的才行
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 不可以直接a=b,比如a和b里面都有整型变量c,则a.c=b.c就可以。

    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是全部复制过去就用memcpy函数,memcpy(basizeof(a))

    如果是某几个赋值就一个个等于,这种结构体变量实质是个指针来的,指针之间用等于号没有意义

    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 结构体不能用这种方式赋值 只能一个一个成员赋值
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 数据类型一样,应该可以。不过要使用成员引用的方式来赋值。
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

同是结构体变量,可以相互赋值吗