结构体中的指针取地址问题

typedefstruct_AAA{BBB*a;intx;inty;}AAA;其中BBB是另一个结构体的变量。AAAtmp;1。请问tmp->a表示的是a的地址还是a的内... typedef struct _AAA
{
BBB * a;
int x;
int y;
}AAA;
其中BBB是另一个结构体的变量。
AAA tmp;
1。请问tmp->a 表示的是a的地址还是a的内容?
2。结构体中的指针如何赋给它一个地址?
BBB b;
tmp->a = b;
1.这样写可以吗? 2.这样写的意思是什么?(如可以这么写)
3.怎样令tmp中的a指向b? 4.怎样通过指针a 对b中的内容进行修改?
展开
 我来答
猪头或火宝宝
推荐于2016-11-04 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1533万
展开全部

1.既然楼主定义的指针变量a为指向结构体BBB的指针,那么tmp->a 当然是指向结构体BBB的指针啦.

2.比如;

定义另一个BBB *b;

tmp->a=b;

这样不就赋值了嘛!!! 

我把楼主提到的问题用代码写出啦,楼主自己看看!!!

举例如下:

#include <iostream.h>

#include<iomanip.h>

#include<stdio.h>

struct BBB

{

 int m;

 int n;

};

typedef struct _AAA

{

 BBB * a;

 int x;

 int y;

}AAA;

void main()

{

 AAA *tmp;

 tmp=new AAA;

 BBB *b;

 b=new BBB;

 cout<<"请输入m n"<<endl;

 cin>>b->m>>b->n;

 cout<<"结构体指针变量b中的m和n:";

  cout<<"m="<<b->m<<",n=" <<b->n<<endl; 

 tmp->a=b;

 cout<<"结构体指针变量a中的m和n:";

 cout<<"m="<<tmp->a ->m <<",n="<<tmp->a->n<<endl;

 cout<<"修改指针变量a中的值,重新输入m n "<<endl;

 cin>>tmp->a->m >>tmp->a->n ;

 cout<<"修改数据如下:";

 cout<<"m="<<tmp->a ->m <<",n="<<tmp->a->n<<endl; 

 cout<<"结构体指针变量b中的m和n:";

 cout<<"m="<<b->m<<",n=" <<b->n<<endl; 

}

集绮索茵
2019-04-23 · TA获得超过3614个赞
知道大有可为答主
回答量:3063
采纳率:28%
帮助的人:255万
展开全部
1.既
楼主定义
指针变量a
指向结构体BBB
指针
tmp->a
指向结构体BBB
指针啦.
2.比

定义另
BBB *b;
tmp->a=b;
赋值



楼主提
问题用代码写

楼主自
看看
举例

#include <iostream.h>
#include<iomanip.h>
#include<stdio.h>
struct BBB
{
int m;
int n;
};
typedef struct _AAA
{
BBB * a;
int x;
int y;
}AAA;
void main()
{
AAA *tmp;
tmp=new AAA;
BBB *b;
b=new BBB;
cout<<"请输入m n"<<endl;
cin>>b->m>>b->n;
cout<<"结构体指针变量b
m
n:";
cout<<"m="<<b->m<<",n=" <<b->n<<endl;
tmp->a=b;
cout<<"结构体指针变量a
m
n:";
cout<<"m="<<tmp->a ->m <<",n="<<tmp->a->n<<endl;
cout<<"修改指针变量a

重新输入m n "<<endl;
cin>>tmp->a->m >>tmp->a->n ;
cout<<"修改数据
:";
cout<<"m="<<tmp->a ->m <<",n="<<tmp->a->n<<endl;
cout<<"结构体指针变量b
m
n:";
cout<<"m="<<b->m<<",n=" <<b->n<<endl;
}
图"
class="ikqb_img_alink">
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtk1982
2010-07-19 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1461万
展开全部
tmp->a这样的表示是错误的,是.还是->是tmp决定的,不是a

1。a是指针 当然表示一个地址
2。与普通的指针赋值是一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fredfsh
2010-07-19 · TA获得超过201个赞
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:0
展开全部
1.
tmp->a is the address of a, i.e., it's a pointer.

2.
A pointer is just an int value.
Suppose you have:

BBB b;

and you want tmp->a to point to b, you could write:

temp->a = &b;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式