c语言中不是说 结构体也能强制转换类型的吗,为什么写的这段代码会报错呢?

#include<stdio.h>structA1{inta;charb;};structA2{chara;intb;};main(){structA1x={10,'A'... #include <stdio.h>
struct A1
{
int a;
char b;
};

struct A2
{
char a;
int b;
};
main(){
struct A1 x = {10, 'A'};
struct A2 y = {'A', 10};
struct A2 z;
z.a = ((struct A2)x).a;
printf("%d",z.a);
}
错误提示是:conversion to non-scalar type requested ,跪求各位大侠帮忙看看,指导一下,小女子不胜感之情。
展开
 我来答
pengfei7523
推荐于2017-09-25 · TA获得超过125个赞
知道答主
回答量:47
采纳率:0%
帮助的人:45.1万
展开全部
结构体是通过指针实现的强制类型转换吧。
main(){
struct A1 x = {10, 'A'};
struct A2 y = {'A', 10};
struct A2 z;

struct A2 *p;
p = (struct A2 *)&x;//这种强制类型转换,把x当A2类型变量使用就通过这个p指针

z.a = p->a;

printf("%d",z.a);
}
广仓野烈趣榕0k
2013-04-12
知道答主
回答量:19
采纳率:0%
帮助的人:14.7万
展开全部
为什么要把结构体强制类型转换啊?结构体可以直接赋值的。
#include "stdafx.h"
struct A
{
char a;
int b;
};
struct B
{
int a;
char b;
};
int main(int argc, char* argv[])
{
A x = {'A' ,10};
B y = {11, 'B'};
B z;
z.a = x.a;
printf("%d\n",z.a);
return 0;
}
输出A的值65
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
报废Ing
2013-04-12
知道答主
回答量:53
采纳率:0%
帮助的人:14.5万
展开全部
我也想说是谁告诉你可以强制转换的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovingyouyuan
2013-04-12 · 超过20用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:33.7万
展开全部
没继承关系,搞什么强制类型转换啊。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
换小米prince
2013-04-12
知道答主
回答量:12
采纳率:0%
帮助的人:6.5万
展开全部
有这样的结构体转换么?就算有,这样使用肯定是不正确的,你想要达到的目的是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式