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不等于结构体首地址?????

...全文
6228 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怎么判断出它们不等的?
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

70,039

社区成员

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

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