关于结构体类型强制转换有关问题【求解】

关于结构体类型强制转换问题【求解】问题描述很简单,但是我想不明白:int achar ba (int)b这个是合法的。

关于结构体类型强制转换问题【求解】

问题描述很简单,但是我想不明白:
  int a;
  char b;
  a = (int)b;
  这个是合法的。

  但是为什么结构体类型不合法。

  struct a { 
  int a;
  };

  struct b {
  int b;
  };

  struct a aa;
  struct b bb;

  aa = (struct a)bb;

  为什么不合法。和int转换是一样的。求指点。。

[解决办法]
并不是所有的类型都可以互相转换, 这个没有可疑惑的.

你想要的是操作内存:

struct a aa;
struct b bb;
struct b *p = &bb;
p = (struct a*)bb;
printf("%d\n", p->a);