指针的类型

一、目的

指向class object的指针是如何与一个指向整数或一个指向template vector的指针有所不同?这个问题被很多互联网公司拿来考查面试者,《深度探索C++对象模型》第一章中指针的类型这样写道:“指向不同类型之各指针”间的差异,既不在于指针的表示方法所有不同,也不在于其内容(代表一个地址)不同,而是在于其所寻址出来的object类型不同。另外,操作符sizeof这篇文章也探讨指针占用内存的大小这一话题。

二、C++代码

#include <iostream>
#include <vector>
#include <string>

using namespace std;

class A
{
public:
	// operations
private:
	int m_i;
};

void main()
{
	// 指向class object的指针
	A *a = new A();

	// 指向整型的指针
	int tmp = 1;
	int *i = &tmp;

	// 指向template vector的指针
	vector<string> col = {"hello", "world"};
	vector<string> *ptv = &col; 

	cout << "指针的类型" << '\n'
		<< sizeof(a) << '\n'
		<< sizeof(i) << '\n'
		<< sizeof(ptv) << endl;

	cin.get();
}
程序执行结果一如分析: 不管何种类型的指针,指针是指向变量的地址,占4个字节


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值