struct结构体首地址如何获取?(菜鸟级别)

heihengheng 2010-04-01 04:11:13
我定义了一个Struct

typedef struct
{
int a;
int b;
}T;

程序中
T t;
void *p1;
void *p2;
p1 = &t;
p2 = &t.a;

结果 p1不等于结构体首地址 p2等于结构体首地址
我非常奇怪.为什么p1不等于结构体首地址?????

...全文
6163 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangbo0603 2010-04-01
  • 打赏
  • 举报
回复
学习学习!
顺便帮顶一下!
NOFINDER 2010-04-01
  • 打赏
  • 举报
回复
毕竟是一个结构体这样定义:
typedef struct
{
int a;
int b;
}T,*p1=T;
指向结构体的指针和结构体变量的指针是不同的(这里的*p1就是了);
NOFINDER 2010-04-01
  • 打赏
  • 举报
回复
t毕竟是一个结构体,如果你想那样,不妨试试&(int *)t,或者这样定义:
typedef struct
{
int a;
int b;
}T,*p1=t;
指向结构体的指针和结构体变量的指针是不同的(这里的*p1就是了);
某某9 2010-04-01
  • 打赏
  • 举报
回复
一样吧!
heihengheng 2010-04-01
  • 打赏
  • 举报
回复
我得到的就不一样。。。。。。汗 估计是其他地方错了 谢谢大家
king_208 2010-04-01
  • 打赏
  • 举报
回复
一样的
东大坡居士 2010-04-01
  • 打赏
  • 举报
回复
一样一样一样的啊~~~~~~
we_sky2008 2010-04-01
  • 打赏
  • 举报
回复
p1和p2的值应该是一样的
gyj_china 2010-04-01
  • 打赏
  • 举报
回复
p1 = &t;
p2 = &t.a;
如果说p1等结构首地址,P2不等于还或许说得过去……
kevinyujm 2010-04-01
  • 打赏
  • 举报
回复
楼主是怎么得到这个结论的?
huanmie_09 2010-04-01
  • 打赏
  • 举报
回复
printf("&t=%p, p1=%p, p2=%p\n", &t, p1, p2);
这样打印,结果是一样的啊.
cx369421368 2010-04-01
  • 打赏
  • 举报
回复
结构体应该和数组类似吧,数组名就是首地址,p1=&t 就是把指向 结构体指针 的指针给p1 个人理解。。。。
selooloo 2010-04-01
  • 打赏
  • 举报
回复
p1,p2值一样啊,LZ怎么判断出它们不等的?

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧