C++如何将一个指针的值赋值给另一个指针,并且两个指针不共用一个地址

typedefunsignedcharByte;Byte*lpbuf1;Byte*lpbuf2;Bytebb;//……代码省略//读取图像数据file.Read(lpbu... typedef unsigned char Byte;
Byte * lpbuf1;
Byte * lpbuf2;
Byte bb ;

//……代码省略

//读取图像数据
file.Read(lpbuf2,initImage.bi.biSizeImage);
//lpbuf2中是有数据的

lpbuf1=&bb;
*lpbuf1=*lpbuf2;

这是我的代码,最后lpbuf1中的数据是0x002eea13 ""
求解~
展开
 我来答
Shen_Juntao
2013-05-02 · 超过21用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:36.8万
展开全部
首先指针全名叫<指针变量>
所以他本身是变量,既然是变量就要有值,而他的值就是指针指向的地址(在32位系统下是一个无符号的32位整数),
所以可以这么说任何两个指针都不共用一个地址,但是可以指向同一个地址!
像这样
int nNum = 10;
int* p1 = &nNum;
int* p2 = &nNum;
p1和p2指向的地址相同,但是p1和p2的地址却是不同的
如果我理解的没错的话你想说的是两个指针指向同一个地址,但是这是不可能的!
既然是指针值赋值给另一个指针,那么一定是指向同一地址的,

算了,看到*c=*d;的写法我哭了!
汐日南莘
2013-05-02 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7651万
展开全部
int a=2,b=3;

int *c,*d;
*c=&a;*d=&d;
*d=*c;
这样就可以了
有不懂可以追问
注意不能写成d=c因为 地址是常量 常量是不能变的
更多追问追答
追问
typedef   unsigned   char   Byte;
Byte * lpbuf1;
Byte * lpbuf2;
Byte bb ;
//读取图像数据
file.Read(lpbuf2,initImage.bi.biSizeImage);
lpbuf1=&bb;
*lpbuf1=*lpbuf2;

这是我的代码,最后lpbuf1中的数据是0x002eea13 ""
求解~
追答
这是因为指针lpbuf2没有指向
意思是你给lpbuf2赋值时是会出错的 因为没有地方存放
你可以加个lpbuf2=&bb;
就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式