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 ""
求解~ 展开
Byte * lpbuf1;
Byte * lpbuf2;
Byte bb ;
//……代码省略
//读取图像数据
file.Read(lpbuf2,initImage.bi.biSizeImage);
//lpbuf2中是有数据的
lpbuf1=&bb;
*lpbuf1=*lpbuf2;
这是我的代码,最后lpbuf1中的数据是0x002eea13 ""
求解~ 展开
展开全部
首先指针全名叫<指针变量>
所以他本身是变量,既然是变量就要有值,而他的值就是指针指向的地址(在32位系统下是一个无符号的32位整数),
所以可以这么说任何两个指针都不共用一个地址,但是可以指向同一个地址!
像这样
int nNum = 10;
int* p1 = &nNum;
int* p2 = &nNum;
p1和p2指向的地址相同,但是p1和p2的地址却是不同的
如果我理解的没错的话你想说的是两个指针指向同一个地址,但是这是不可能的!
既然是指针值赋值给另一个指针,那么一定是指向同一地址的,
算了,看到*c=*d;的写法我哭了!
所以他本身是变量,既然是变量就要有值,而他的值就是指针指向的地址(在32位系统下是一个无符号的32位整数),
所以可以这么说任何两个指针都不共用一个地址,但是可以指向同一个地址!
像这样
int nNum = 10;
int* p1 = &nNum;
int* p2 = &nNum;
p1和p2指向的地址相同,但是p1和p2的地址却是不同的
如果我理解的没错的话你想说的是两个指针指向同一个地址,但是这是不可能的!
既然是指针值赋值给另一个指针,那么一定是指向同一地址的,
算了,看到*c=*d;的写法我哭了!
展开全部
int a=2,b=3;
int *c,*d;
*c=&a;*d=&d;
*d=*c;
这样就可以了
有不懂可以追问
注意不能写成d=c因为 地址是常量 常量是不能变的
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;
就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询