如何获取C++指针的地址数值

如何获取C++指针的地址数值,第1张

char p=new char;
DWORD AddValue=(DWORD)p;//强制类型转换
C++this指针:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。

/使指针指向现有的内存 /
int x = 1;
int p = &x;// 指针 p 被初始化,指向变量 x ,其中取地址符 & 用于产生 *** 作数内存地址
/ 方法2:动态分配内存给指针 /
int p;
p = (int )malloc(sizeof(int) 10);
// malloc 函数用于动态分配内存
free(p);

概念问题。
是取出内存中的数据,不是将内存取出。
取得内存中数据需要该内存的位置,位置一般称为地址;使用存储地址的指针变量就能读取内存中的数据。
只要指针中存在有效地址,而且该指针不是无类型的指针,就可以用这样的格式读写数据
变量=(pointer) //(pointer)= 数值

yprt是指针,yprt是计算机存储某个数据的地址,加上表示指向这个地址存储的数据
若地址yprt里存储的是y,&是单目运算符,符合右结合法则,所以先是运算yprt,它的值是y,
然后再&y,它的运算结果是得出存储y的地址,就是yprt。
不懂继续问
望采纳

从runtime源码来看: runtime源码
下面我们可以使用位域的技术更加精简,我们设定一个结构体来储存我们的值。

所以取值isa地址的时候需要& ISA_MASK才能得到真正的isa地址
shiftcls 是存放class meta-class的地址,位移33位。

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

2比如;

定义另一个BBB b;

tmp->a=b;

这样不就赋值了嘛!!!

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

举例如下:

#include <iostreamh>

#include<iomaniph>

#include<stdioh>

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;

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13394910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存