计算机的内存地址和指针的关系
指针(pointer),就是一个存储计算机内存地址的一个变量,通过这个变量,可以很方便的操作内存中的值,创建变量时,系统将分配一些内存块用保存他们的值,为了随时能找到这些内存块,每个内存块拥有一个独一无二的地址(即寻址索引),且变量的地址可以用&
取地址符取得,取得的16进制的地址信息便是变量指针,利用指针我们便可以对变量进行快速的访问.
C++中指针的特性
C++中允许多个指针指向同一个值
C++支持无类型指针,就是没有被声明为某种特定类型的指针,例如void*pointer
,对于一个无类型指针进行解引用前,必须先把他转换为适当的数据类型,且无类型指针可以指向任何类型的数据,常用于函数的参数交换.
整型指针和字符型指针在输出时的异同
并使用reinterpret_cast
重释转换符对指针地址进行类型转换并利用指针输出值和指针的地址
void ArrayPointer()
{
const unsigned short ITEMS = 5;//建立静态变量
int intArray[ITEMS] = {
1,2,3,4,5 };
char charArray[ITEMS] = {
'F','i','g','h','t' };
int* intPtr = intArray;
char* charPtr = charArray;
cout << "整型数组输出" << endl;
for (int i = 0; i < ITEMS; i++)
{
cout << *intPtr << "使用强制类型符转换后地址为" << reinterpret_cast<unsigned long>(intPtr) << '\n';
//todo输