首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

虚拟指针的大小-C++

虚拟指针是一种指针,它指向的是一个虚拟地址,而不是物理地址。在C++中,虚拟指针的大小取决于操作系统和编译器的实现。通常情况下,虚拟指针的大小是32位或64位,取决于操作系统和编译器的实现。

在32位操作系统上,虚拟指针的大小通常是32位,即4字节。在64位操作系统上,虚拟指针的大小通常是64位,即8字节。

虚拟指针的大小可以通过sizeof()函数来获取,例如:

代码语言:txt
复制
int* ptr = nullptr;
std::cout << "Size of virtual pointer: "<< sizeof(ptr)<< std::endl;

这将输出虚拟指针的大小,如果是32位系统,则输出4,如果是64位系统,则输出8。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++通过文件指针获取文件大小

叙述 对于读取本地文件,很多时候需要预先知道本地文件大小在进行读取。网上给出方案是移动文件指针,计算文件头和文件尾偏移,计算出文件大小。...QueryPerformanceCounter(&litmp);//获得终止值 qt2 = litmp.QuadPart; dfm = (double)(qt2 - qt1); dft = dfm / dff;//获得对应时间值...timer.time_out(); cout << "读取文件耗时:" << timer.time_out() << "秒" << endl; return 1; } 如上所示,我写了一个计时器,分别统计偏移文件指针计算文件长度与读取整个文件耗时...结论 可以看到,偏移文件指针带来时间消耗非常小,几乎可以忽略不记。通过这个方法,不仅可以很快计算文件长度,还可以根据需要读取文件特定位置,从而达到节省性能目的。

2.8K10

指针内存大小

而在x84架构中,我们cpu每一次提供一条不可分割32位指令传递给cpu,这样说明了64位系统为什么可以运行32位程序。 2.指针内存大小 了解上述内容后我们来看指针内存大小。...首先,指针就是一个变量,用来存储地址信息。所以无论什么类型指针,其内存大小都是相同,都是数据存储空间长度。...2.1不同系统环境指针内存大小 32位----32bit----4Byte 64位----64bit----8Byte 原理是因为不同系统中cpu能够一次性提取位不同,所以地址长度也不同。...现在我们换到x64系统来看一下指针内存大小 #define _CRT_SECURE_NO_WARNINGS #include int main() { int a = 0;...总结 指针内存大小就是变量地址长度。在不同系统环境中其地址长度也不同,所以指针内存大小通常为4字节(32位)或者8字节(64位)。

13410
  • 详解c++指针指针指针引用

    展示一下使用指针指针指针引用修改传递给方法指针,以便更好使用它。...(这里说指针指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针复本传递给了方法,也可以说传递指针指针值传递。...如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改指针copy而不是指针本身,原来指针还保留着原来 值。...输出是两个2 使用指针指针 展示一下使用指针指针做为参数 void func(int **p) { *p = &m_value; // 也可以根据你需求分配内存 *p...我们看一下 func(int **p)这个方法 p:  是一个指针指针,在这里我们不会去对它做修改,否则会丢失这个指针指向指针地址 *p:  是被指向指针,是一个地址。

    1.3K60

    C++this指针

    大家好,又见面了,我是你们朋友全栈君。 C++this指针 当你进入一个房子后, 你可以看见桌子、椅子、地板等, 但是房子你是看不到全貌了。...C++在初始化对象时,每个对象中数据成员都会得到系统分配自己独立存储空间。...this指针特性: 1、this指针类型const(类名const),为右值。 2、this指针本身不占用大小,并不是对象本身一部分,不影响sizeof结果。...5、只有在类非静态成员函数中才可以使用this指针, 其它任何函数都不可以。 6、this指针时刻指向对象 。 7、当this指针指向空时,是不会指向对象。...也就是说,成员函数参数不能与对象成员变量重名,如果一定要重名,就必须用this指针指明。

    58020

    C++C++ 类中 this 指针用法 ① ( C++ 类中 this 指针引入 | this 指针用法 | 代码示例 )

    一、C++ 类中 this 指针 1、C++ 类中 this 指针引入 在 C++ 类中 , this 指针 是一个特殊指针 , 由系统自动生成 , 不需要手动声明定义 , 在类中每个 非静态成员函数...中 , 都可以调用 this 指针 ; this 指针 是指向 调用对象 自身 指针 , 也就是调用 该成员函数 实例对象 内存地址 ; 由于 this 指针只能在 非静态成员函数内部使用..., 因此 this 指针是类内部使用指针 , 使用 this 可以访问 实例对象 中 所有 公有 public / 保护 protected / 私有 private 成员 ; 2、C++ 类中...this 指针用法 C++ 类中 this 指针用法 : 使用 this 作为指针 : 在 非静态成员函数 中 , 直接使用 this 作为 本实例对象 指针 ; this 使用 this-> 访问成员变量...访问成员变量 : 在 非静态成员函数 中 , 直接使用如下语法 , 访问 本实例对象 中 非静态成员变量 ; 先获取指针指向数据 然后访问数据中成员变量 ; (*this).成员变量名 在 C++

    31520

    C++ this指针

    :this指针,通过this指针来访问自己地址。...注意: this指针并不是对象一部分,this指针所占内存大小是不会反应在sizeof操作符上。...this指针类型取决于使用this指针成员函数类型以及对象类型, 一、this指针概念 定义 在 C++ 中,每一个对象都能通过 this 指针来访问自己地址。...this指针创建 this指针在成员函数开始执行前构造,在成员执行结束后清除。 this指针只有在成员函数中才有定义。 创建一个对象后,不能通过对象使用this指针。...也无法知道一个对象this指针位置(只有在成员函数里才有this指针位置)。当然,在成员函数里,你是可以知道this指针位置(可以&this获得),也可以直接使用

    57320

    初识C语言——初识指针(什么是内存,什么是指针指针变量怎么用,指针大小

    所以为了有效使用内存,就把内存划分成一个个小内存单元,每个内存单元大小是1个字节。 为了能够有效访问到内存每个单元,就给内存单元进行了编号,这些编号被称为该内存单元地址。...("%c\n", ch); return 0; } 3.指针变量大小 思考一个问题,整型变量大小是4个字节,char类型1个字节,double8个字节,那么指针变量大小是多少?...不同类型指针变量大小是不是也不一样呢?...为什么不同类型指针变量大小是一样呢?又为什么是4个字节呢? 原因是: 指针是用来存放地址,所以指针变量大小取决于地址大小,而在同一平台上地址大小是固定不变。...我们来验证一下: 在32位平台上: 4个字节 64位平台上: 8个字节 所以,我们得出结论: 指针变量大小在同一平台是是固定: 指针大小在32位平台是4个字节,64位平台是8

    25710

    C++大小计算

    大概总结下,类大小需要考虑以下内容: 非静态成员变量大小 数据对齐到多少位 有无虚函数(即需不需要指向虚函数表指针,如果考虑继承情况,则还需要看继承了多少个指向虚函数表指针) 非静态成员变量大小...,所以大小为4,所以类大小要加上虚指针4: class funcOnly2 { public: funcOnly2() {}; virtual ~funcOnly2() {}; private:...void boo() {}; int br; }; 例如上面这样,就是int4加上虚指针4。...总结 大概总结下,类大小需要考虑以下内容: 所有非静态成员变量大小 数据对齐到多少位 有无虚函数(即需不需要指向虚函数表指针,如果考虑继承情况,则还需要看继承了多少个指向虚函数表指针) 参考 C...++中空类占一字节原因详解:建议看,对空白类讲解比较详细 sizeof计算空间大小总结 《C++ Primer 第5版》

    1.1K20

    C++ 指针常量与常量指针

    而不管是指针常量还是常量指针他们区别其实就是const关键字位置,下面直接根据声明方式不同解释二者区别: 在只有一个关键字const情况下,声明有三种方式: //1 const int* p...所以被指向数据值到底能不能改变根本不由指针声明方式决定,而是该数据本身是常量还是变量。.../合法 p = &b;//不合法 以上就是所谓指针常量与常量指针所包含概念,在这里标个号: 1,2暂时称为第一类,3暂时称为第二类,那么第一类和第二类到底哪个叫做指针常量,那个叫做常量指针呢?...说实话我都不知道指针常量与常量指针叫法是不是够官方,我只能说概念非常混淆,而且其实它两个名字并不重要,关键是声明方式与作用区别。...上面说情况,对于指针修饰都只用了一个const关键字,还有两个const一起用时候,此时结果就是指针不能修改指向数据,指针不能指向别的地方: int a = 5; int b = 6; const

    1.6K70

    C++指针c++指针使用注意点

    c++指针使用注意点 避免野指针产生 “野指针成因主要有: 1)指针变量没有被初始化。...任何指针变量刚被创建时不会自动成为NULL指针,它缺省值是随机,它会乱指一气。所以,指针变量在创建同时应当被初始化,要么将指针设置为NULL,要么让它指向合法内存。...char *p; //此时p为野指针 2)指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法指针. char *p=new char[10]; //指向堆中分配内存首地址...e.指针做形参 即所谓地址传递,我们都知道地址传递方式,形参改变会导致实参改变,但要注意是,这里改变是指指针所指内容改变,而不是指针改变。...a指向,即改变指针值a值,先前是“abc”地址,后来是“cba”地址。

    1.5K30

    C++中this指针本质

    大家好,又见面了,我是你们朋友全栈君。...一直以来对C++this不理解,只知道在构造函数中,如果构造函数参数和类成员名字一样的话,就可以用this指针来区分,如: this->a = a; 一直以来都有这个疑问:this究竟是什么?...从刚才代码中,我们用”this->”而不是”this.”就说明this是一个指针,而我们知道,在C、C++中,指针就是地址,因此很容易想到,this也是一个地址。但是问题来了,this是谁地址呢?...我们看下面这个很简单C++程序: #include class A { public: A(); }; A::A() { std::cout << "this...我们可以看到,this和&a结果是一样。由此可以看出,this就是a地址,而a是类A一个对象,占用了sizeof(A)内存空间。

    75730

    C++ 指针、引用梳理

    * 指针运算符 可作为左值。表示查询到指针所对应内存空间这样操作。 & 地址运算符,可以概括为 取址运算符,从变量或对象等获取到该元素所在内存空间中对应地址。...实际上这里object->method()等价于 (* object).method(),这是c++提供一种语法糖。...另外,每个对象方法内,默认隐含了一个this属性,实际上是指向该对象本身指针运算 算数运算 对指针运算并非对地址进行修改,而是对于指针所指向内存空间进行偏移定位。...另外可以将指针与0做比较,判断指针是否为空。(如果是新标准 可能不行) 指针传参 指针传参是十分重要一个特性了,失去了指针C++也就失去了他最大性能优势。...但是需要注意,返回指针应当是一个返回后依然有效指针,否则会产生越界,野指针或是更多错误。

    49320

    浅析C++this指针

    this指针,这个时候发现this指针值为NULL,就会造成程序崩溃。...上面的C++代码编译生成汇编代码是下面的形式: CNullPointCall * pNull = NULL; 0041171E mov dword ptr [...看call 3那行C++代码汇编代码就可以看到this指针跟一般函数参数区别:一般函数参数是直接压入栈中(push 0Dh),而this指针却被放到了ecx寄存器中。...: CTest test; test.SetValue(); 上面的C++代码汇编代码为: CTest test; test.SetValue(); 004117DC...通过上面的分析,我们可以从底层了解了C++中this指针实现方法。虽然不同编译器会使用不同处理方法,但是C++编译器必须遵守C++标准,因此对于this指针实现应该都是差不多

    75610

    C++之this指针

    大小 有个问题是刚开始学习C++的人都想知道,那就是C++类对象大小是多少?可能猜测是它所有数据成员大小加上所有函数指针大小,这样就是类大小。...这个大小看起来就是数据成员放在结构体中大小。依然采用内存对齐。这说明函数成员和数据成员是分开存储。 那么C++函数成员是怎么确定是哪一个对象在调用它?...为了解决这个问题,C++设计了一个叫做this指针东西。它能帮助成员函数知道谁在调用它。 this指针 this指针存放着当前对象地址,也就是this指针指向当前对象。可以使用它来返回对象本身。...this指针不是对象成员。 this指针只能在成员函数内部使用,类外以及成员函数外部都不能使用。 this指针是普通成员函数一个隐藏参数。 注意:类静态成员函数不具备this指针。...this指针另外一个附加功能就是当类数据成员和类函数参数名称一致时候,使用this指针可以避免混淆。就像下面代码中一样。

    44310

    C++指针运算

    C++指针运算 指针变量加或减 一个整数   p++; p--; p+i; p-i; C++规定,一个指针变量加或减一个整数是将该指针变量原值和它指向变量所占用内存单元字节数相加或相减。...读者应明白一点,point值等于NULL和point未被赋值是两个不同概念。 C++两个指针变量可以相减  如果两个指针变量指向同一个数组元素,则两个指针变量值之差是两个指针之间元素个数。...C++两个指针变量比较  若两个指针指向同一个数组元素,则可以进行比较,指向前面的元素指针变量小于指向后面元素指针变量。...C++使用指针优缺点 指针是C语言和C++重要组成部分,使用指针优点是:  提高程序效率。...使用指针缺点是: 指针使用实在太灵活,对不熟练程序员来说,很容易出错,而且出现错误很难发现。 C++指针运算 更多案例可以go公众号:C语言入门到精通

    1.1K2118
    领券