结构体变量如何赋值可以直接赋值吗

我的意思是
struct a
{
int a;
char b;
}aa;
struct b
{
int a;
char b;
} bb;
bb = aa;可以吗

  结构体变量是可以直接赋值的;
  定义结构体类型,然后用这个类型定义出来的变量就是结构体变量;
  C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-28
可以直接赋值,但是在有指针的情况下会出现指向同一位置的情况,在这种情况下,释放掉其中之一那么,另一个的指针使用会出现非法.
因为他们有默认的赋值重载.但是只可以简单的将对应的值一一赋给对方.

同一类型用得着声明两次么?这么多人都说了,可以呀.只是有些像上面说的那种情况你要注意一下.
第2个回答  2008-03-28
可以,但是不太推荐.

--------------------
可以在定义时赋值,也可以通过变量来赋值,C++里面还可以通过构造函数,成员函数来赋值等...

struct yy {
int i;
float f;
}a = {1, 0.1};

struct yy b;
b.i = 2;
b.f = 1.1;
第3个回答  2008-03-28
结构体变量可以直接赋值的。本回答被提问者采纳
第4个回答  2018-07-28
结构体的赋值仅仅是简单的浅复制,如果涉及到指针类型就会出问题,比如:

struct BirthDay
{
int m_Year;
int m_Month;
int m_Day;
};
struct stu
{
int m_Age;
char m_Sex;
BirthDay *bd;
};本回答被网友采纳