千家信息网

如何掌握C++指针基础

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章给大家介绍如何掌握C++指针基础,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示
千家信息网最后更新 2024年11月20日如何掌握C++指针基础

这篇文章给大家介绍如何掌握C++指针基础,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

C++指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,这些都是一些C++指针基础性的问题,也是C++中指针中的一个非常重要的概念。

它告诉程序在内存的哪块区域可以找到数据。这是一个非常重要的概念,有很多程序和算法都是围绕指针而设计的,如链表。如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在指针名字前加上一个星号。

我们来看一个例子:下面这个程序定义了两个指针,它们都是指向整型数据。你注意到在两个变量名前的"p"前缀了吗?这是程序员通常在定义C++指针基础时的一个习惯,以提高便程序的阅读性,表示这是个指针。现在让我们来初始化这两个指针

#include  void main()  {  // 声明变量:  int nNumber;  int *pPointer;  // 现在给它们赋值:  nNumber = 15;  pPointer = &nNumber;  //打印出变量nNumber的值:  cout<<"nNumber is equal to :"<< nNumber<

号读作"什么的地址",它表示返回的是变量在内存中的地址而不是变量本身的值。在这个例子中,pNumberOne 等于some_number的地址,所以现在pNumberOne指向some_number. 如果现在我们在程序中要用到some_number,我们就可以使用pNumberOne.

我们来学习一个例子:在这个例子中你将学到很多,如果你对C++指针基础的概念一点都不了解,我建议你多看几遍这个例子,指针是个很复杂的东西,但你会很快掌握它的。这个例子用以增强你对上面所介绍内容的了解。它是用C编写的(注:原英文版是用C写的代码,译者重新用C++改写写了所有代码,并在DEV C++ 和VC++中编译通过!)

#include  void main()  {  // 声明变量:  int nNumber;  int *pPointer;  // 现在给它们赋值:  nNumber = 15;  pPointer = &nNumber;  //打印出变量nNumber的值:  cout<<"nNumber is equal to :"<< nNumber<

通读一下这个程序,编译并运行它,务必明白它是怎样工作的。如果你完成了,准备好,开始下一小节,这段程序先调用了SomeFunction函数,创建了个叫nNumber的变量。接着让C++指针基础pPointer指向了它。可是问题出在哪儿呢?当函数结束后,nNumber被删掉了,因为这一个局部变量。局部变量在定义它的函数执行完后都会被系统自动删掉。

也就是说当SomeFunction 函数返回主函数main()时,这个变量已经被删掉,但pPointer还指着变量曾经用过的但现在已不属于这个程序的区域。如果你还不明白,你可以再读读这个程序。

注意它的局部变量和全局变量,这些概念都非常重要。但这个问题怎么解决呢?答案是动态分配技术。注意这在C和C++中是不同的。由于大多数程序员都是用C++,所以我用到的是C++中常用的称谓。

关于如何掌握C++指针基础就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

指针 变量 C++ 程序 基础 例子 函数 概念 重要 两个 内容 地址 局部 指向 数据 这是 问题 不同 代码 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华为云配置中心配置连接数据库 橙橙网络安全插画 网络安全法第一责任人 软件开发编码测试记录表 日销售统计数据库设计 imp导入会覆盖原数据库 APPLEWATCH软件开发 新洲靠谱的软件开发中心 怎么把数据库中的表备份 网络安全例子违法处罚 网络安全吴瀚清 河北云服务器存储服务器虚拟主机 迷你世界炸服务器后视频 一个服务器能运行2个数据库吗 企帮网络技术 实惠的五金切割软件开发管理 无线网络技术bss 静安区网络技术开发市场价格 游戏公司数据库服务器配置 西宁网络安全工程师收入 苏康码服务器出错了是怎么回事 泉州直播专用变声器软件开发 修改数据库字段默认值 深圳软件开发公司哪个品牌好 义乌电脑软件开发工具 开源数据库不收费的期刊 黎明杀机连接不到服务器怎么回事 房屋中介数据库 科技型互联网公司是干什么的 服务器电源改装12v输出
0