结构体中的指针取地址问题
{
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中的内容进行修改? 展开
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;
}
楼主定义
指针变量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">
1。a是指针 当然表示一个地址
2。与普通的指针赋值是一样的
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;