- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++中关于指针入门
其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真
实的数据,而指针是一个指示器,它告知程序在内存的哪块区域可以找到
数据。这是一个特别重要的概念,有许多程序和算法都是围绕指针而设计
的,如链表。
开头学
如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在
指针名字前加上一个星号。我们来看一个例子:下面这个程序定义了两个
指针,它们都是指向整型数据。
int* pNumberOne;
int* pNumberTwo;
你留意到在两个变量名前的“p”前缀了吗?这是程序员通常在定义
指针时的
一个习惯,以提高便程序的阅读性,表示这是个指针。现在让我们来
初始化这两个指针:
pNumberOne =
pNumberTwo =
int *pPointer;
// 现在给它们赋值:
nNumber = 15;
pPointer =
//打印出变量 nNumber 的值:
cout
int *pPointer;
void SomeFunction();
{
int nNumber;
nNumber = 25;
//让指针指向 nNumber:
pPointer =
}
void main()
{
SomeFunction(); //为 pPointer 赋值
//为什么这里失败了?为什么没有得到 25
cout
int *pPointer;
void SomeFunction()
{
// 让指针指向一个新的整型
pPointer = new int;
*pPointer = 25;
}
void main()
{
SomeFunction(); // 为 pPointer 赋值
cout
调用时,它安排了一个内存,并让 pPointer 指向它。这一次,当函
数返回时,新的内存区域被保存下来,所以 pPointer 始终指着有用的信
息,这是由于了动态安排。但是你再认真读读上面这个程序,虽然它得到
了正确结果,可仍有一个严峻的错误。
安排了内存,别忘了回收
太简单了,怎么会还有严峻的错误!其实要改正并不难。问题是:你
动态地安排了一个内存空间,可它绝不会被自动删除。也就是说,这块内
存空间会始终存在,直到你告知电脑你已经使用完了。可结果是,你并没
有告知电脑你已不再需要这块内存空间了,所以它会连续占据着内存空间
造成铺张,甚至你的程序运行完毕,其它程序运行时它还存在。当这样的
问题积存到肯定程度,最终将导致系统崩溃。所以这是很重要的,在你用
完它以后,请释放它的空间,如:delete pPointer;
这样就差不多了,你不得不当心。在这你终止了一个有效的指针 (一
个的确指向某个内存的指针)。
下面的程序,考试大提示它不会铺张任何的内存:
#include
int *pPointer;
void SomeFunction()
{
// 让指针指向一个新的整型
pPointer = new int;
*pPointer = 25;
}
void main()
{
SomeFunction(); //为 pPointer 赋值
cout
void AddFive(int Number)
{
Number = Number + 5;
}
void main()
{
int nMyNumber = 18;
cout
void AddFive(int* Number)
{
*Number = *Number + 5;
void main()
{
int nMyNumber = 18;
原创力文档


文档评论(0)