指针
指针存储变量的地址。
语法类型* pointer;
Type*pointer初始化;
Pointer=variablename;
功能指针是存储变量的地址。
可以为指针指定空值。
指针可以通过引用引用引用。
指针在堆栈上有自己的存储器地址和大小。
示例#include
用户名称空间;
intmain () )。
//Anormalintegervariable
inta=7;
//apointervariablethatholdsaddressofa。
int*p=a;
//valuestoredisvalueofvariable ' a '
出局了
//itwillprinttheaddressofthevariable ' a '
出局了
//reassignthevalue。
*p=6;
出局了
返回0;
}
输出结果ValueofVariable:7
AddressofVariable:0x6ffe34
Valueofthevariableisnow:6
c的智能指针
智能指针是一种抽象数据类型,可以用作执行文件处理、内存管理(如网络套接字)、自动销毁和引用计数等多种功能的常用指针。
c的智能指针可以实现为模板类,由*和-运算符重载。 auto_ptr、shared_ptr、unique_ptr和weak_ptr是可以在c库中实现的智能指针格式。
示例#include
用户名称空间;
//Agenericsmartpointerclass
模板
classSmartpointer{
T*p; //Actualpointer
公共:
//Constructor
智能指示器(t * ptr=null ) {
p=ptr;
}
//Destructor
~Smartpointer () }
Delete(p;
}
//overloadingdereferencingoperator
t操作器* (
返回* p;
}
//overlodingarrowoperatorsothatmembersoftcanbeaccessed
//likeapointer
t *操作器- () ) )。
返回;
}
(;
intmain () )。
smartpointerp (新输入);
*p=26;
出局了
返回0;
}
输出结果Valueis:26
c的共享指针
shared_ptr是一种智能指针格式,可以在c库中实现。 这是一种用于存储原始指针和引用计数、指针或资源(对象、内存块、磁盘空间或其他资源)与所有shared_ptr副本的句柄数量的技术。
只有在shared_ptr销毁了所有副本时,才会销毁原始指针引用的对象。
示例#include
#包含
用户名称空间;
intmain () )。
shared_ptrptr(newint(7);
shared_ptrptr1(newint(6);
出局了
出局了
//returnsthenumberofshared _ ptr objects
//referringtothesamemanagedobject。
出局了
出局了
//relinquishesownershipofptrontheobject
//andpointerbecomesNULL
ptr.reset (;
出局了
出局了
出局了
返回0;
}
输出结果0xe80900
0xe80940
1
1
0
1
0xe80940