定义一个结构体指针,结构体指针中有一个成员为指针变量,那么此结构体变量指向指针变 量地址是什么意思

structA{int*m;}M;如果M->m代表什么... struct A{
int *m;
}M;
如果M->m代表什么
展开
 我来答
NewLife891218
2013-04-18 · TA获得超过781个赞
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:73.9万
展开全部
同学你好,这样是不对的。访问结构体有两种方法。
第一种,是通过变量名访问。格式是,变量名加上. 例如你例子中的 M就是个变量名,可以M.m 表明访问结构体里面的成员m,这里m是个指针变量。

第二种,就是通过指向结构体的指针来访问。 格式是,变量名加上—> 。比如,我声明一个结构体指针,将它指向M。 struct A* p;这里,p是一个结构体指针了,所谓指针,就是里面装的是一个地址。 比如你声明了一个M名字的结构体,它可能在内存中的地址是 0x00124fff, 那么你将p 的值写为0x00124fff,那就表明p指向了M。

再回答你的问题,你声明了M ,它的地址是0x00124fff, 它里面存放了一个m变量,变量属性是整型指针,也就是说,m这个变量也是放的地址,至于放的什么值,你是不知道的,因为你没有初始化。

你只要明白,指针也是变量,就是地址。 比如 int a=5。 它的地址是多少,&a 。 如果你想把m指向它,就给m赋值。m=a? 不行,m是指针,只能放地址,m=&a,那么,m就指向了a。 你以后要改变a,可以直接通过a的名字改,也可以通过指向a的指针改。 比如a=5,和 *p=5,现在是等价的,因为,后面一句话的意思是,把p里面存放的地址的那个值改成5。
现在你该知道了吧,其实这个题目没啥特殊,只不过,m不是一个整数,是一个地址,访问这个地址,它是一个整型数。
说了这么多,希望你明白,指针没啥特殊,就是地址。 如果你什么float*p ,那么初始化之后,对它访问,得到的就是一个浮点型的数
ok,打字累啊~~~
759678354a
2013-04-17
知道答主
回答量:24
采纳率:100%
帮助的人:7.6万
展开全部
代表的就是指针m所指向的地址。。你的指针m还没具体指向哟
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsxwdwl
2013-04-17
知道答主
回答量:4
采纳率:0%
帮助的人:3万
展开全部
M->m是非法的,M.m才是正确的!M.m只是一个整形的指针,那就要看你指向哪一个整形的数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式