C语言指向结构体成员数据的指针的输出

#include<stdio.h>structsk{intn;floatx;}data,*p,*i;main(){data.n=166;data.x=28.76;p=(s... #include<stdio.h>
struct sk
{
int n;
float x;
}data,*p,*i;
main()
{

data.n=166;
data.x=28.76;
p=(struct sk*)&data.n;
i=(struct sk*)&data.x;
printf("%d\n%g\n",data.n,data.x);
printf("%d\n%g\n",*p,*i);
}
这里,p指向的内容可以正确输出,i却不行,但我知道那里出了问题请人帮忙

附上输出结果。
展开
 我来答
Dan_Brown
推荐于2017-12-16 · TA获得超过297个赞
知道小有建树答主
回答量:268
采纳率:100%
帮助的人:203万
展开全部
p的使用方法错误。p是结构体指针,p=&data.a 把p指向了结构体成员,不可以。
应该这样
p = &data;
然后用p操作成员:
p->n或者p->a
追问
那为什么p的输出是正常准确的呢?
追答
那是因为n是结构中第一个成员,它的地址和结构体的地址是一样的。
匿名用户
2015-01-29
展开全部
float *p=&data.x;

 int *q=&data.n;

这样试试

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式