C++中关于指针入门的的文章

C++中关于指针入门的的文章,第1张

C++中关于指针入门的的文章,第2张

什么是指针?
其实指针和其他变量一样。区别在于,一般变量包含实际的真实数据,而指针是一个指示器,告诉程序数据可以在内存的哪个区域找到。这是一个非常重要的概念。很多程序和算法都是围绕指针设计的,比如链表。

了解
如何定义指针?就像你定义任何其他变量一样,除了你必须在指针名前加一个星号。举个例子:下面的程序定义了两个指针,都指向整数数据。
int * pNumberOne;
int * pNumberTwo;

你注意到两个变量名前面的“p”前缀了吗?这是程序员在定义指针
以提高方便程序的可读性时的常见习惯,表示这是一个指针。现在我们来初始化这两个指针:
pNumberOne = & some _ number;
pNumberTwo = & some _ other _ number;

与号(&)读作“某物的地址”,意思是返回变量在内存中的地址,而不是变量本身的值。在这个例子中,pNumberOne等于some_number的地址,所以现在pNumberOne指向some_number。现在如果我们想在程序中使用some_number,我们可以使用pNumberOne。

我们来学习一个例子:
在这个例子中,你会学到很多东西。如果你完全不知道指针的概念,建议你多看几遍这个例子。指针是一个很复杂的东西,但是你很快就会掌握它。
此示例用于增强您对上述内容的理解。是用C写的(注:英文原版是用C写的,译者用C++重写了所有代码,用DEV C++和V C++编译!)
# include
void main()
{
/Declare variable:
int n number;
int * p pointer;
//现在给它们赋值:
n number = 15;
PP ointer = & n number;
//打印出变量nNumber的值:
cout
int * p pointer;
void some function();
{
int n number;
n number = 25;
//让指针指向n个数:
p指针=&n个数;
}
void main()
{
some function();//赋值给ppon pointer
//为什么在这里失败?为什么没有得到25
cout
int * p pointer;
void some function()
{
/让指针指向一个新的整数
pPointer = new int;
* pPointer = 25;
}
void main()
{
some function();//将值赋给pPointer
当调用cout
时,它会分配一个内存并让pPointer指向它。这一次,当函数返回时,新的内存区域被保留,因此pPointer总是指向有用的信息,这是由于动态分配。但是,如果你仔细阅读上面的程序,虽然它得到了正确的结果,但仍然存在严重的错误。
分配的内存,别忘了回收
太复杂了,怎么会有严重错误!其实并不难纠正。问题是:你动态分配了一个内存空的房间,但是永远不会自动删除。也就是说,这个内存空会一直存在,直到你告诉电脑你已经用完了。结果你没有告诉电脑你不再需要这个内存空,它就会继续占用内存空,造成浪费。即使在你的程序运行后,当其他程序运行时,它仍然存在。当这样的问题积累到一定程度,系统最终会崩溃。所以非常重要。您使用后,请释放其空房间,如:删除pPointer
大概就是这样。你必须小心。这里你终止了一个有效的指针(一个实际指向某个内存的指针)。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++中关于指针入门的的文章

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情