C/C++中的引用和指针
引用又称 别名,它可以最为对象的一个名字,但它既不是对象的指针,也不是对象的副本。
通过引用可以间接地操作对象,使用方式类似于指针,但不需要指针的语法。
使用规则:
1> 引用被创建的同时必须被初始化,(指针可以在任何时候被初始化
int a = 12;
int &b = a;//正确
int &c;//错误
2> 一旦引用被初始化,就不能改变引用的关系(指针可以随时改变所指的对象)
3> 引用的所有操作实际上都是应用在它所指的对象身上,包括取址操作符
4> 不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)
直接访问:按变量地址存取变量值
间接访问:通过变量地址的的变量去访问变量
指针:指针就是它的值表示内存地址的变量
如果两个指针都指向同一个数组中的元素,它们之间可以相减。
任何指针之间都可以进行比较,测试它们相等或不相等。
指针和引用的异同
相同点:
都是地址的概念,指针所指向的一块内存,它的内容是所指内存的地址,而引用则是某块内存的别名。
不同点:
1> 指针是一个实体,而引用是个别名
2> 引用只能在定义时初始化一次,之后不可改变,指针则可以;引用“从一而终”,指针“见异思迁“
3> 引用没有const,指针有const,有const的指针不可改变
4> 引用不可为空,而指针可以为空
5> Sizeof引用得到的是所指变量(对象)的大小,而sizeof得到的是指针本身的大小
6> 指针和引用的自增(++)运算意义不一样
7> 引用是类型安全的,而指针不是(引用比指针多了类型检查)
分享到:
相关推荐
通过深入学习和实践这些资料,开发者不仅能掌握C/C++指针的基本操作,还能了解如何在实际编程中安全有效地利用指针,提升程序设计能力。指针的理解和运用是成为一名熟练的C/C++程序员的关键步骤。
在这个名为"C/C++指针的用法总结实例工程"的项目中,我们将深入探讨五种关键的指针相关概念,包括双重指针、引用、指针函数、指针数组以及数组指针,并通过实际的例子来帮助理解这些概念。 首先,让我们看看双重...
本资源包包含13份关于C/C++指针的详细资料,旨在帮助编程人员深入理解并熟练运用指针。以下是关于C/C++指针的一些关键知识点: 1. **指针的概念**:指针是一种特殊的变量,它存储的是内存地址,即另一个变量的内存...
"CqxianPDF_C/C++指针_"这个标题暗示了一个专门针对C和C++指针的学习资料,可能是PDF格式的教程或手册,旨在帮助程序员深入理解和掌握指针的使用。 指针是C和C++中的一种特殊类型的数据,它存储的是一个内存地址,...
本资料集“C/C++指针学习 指针经验学习”旨在帮助读者深入理解和掌握这一核心技能。 首先,我们要明白指针的基本概念。在C/C++中,指针是一个变量,它存储的是另一个变量的地址,即内存中的位置。通过指针,我们...
这篇"《C/C++指针经验总结》"教程旨在帮助你理解和掌握指针的使用,消除对指针的恐惧,通过丰富的实例来深入理解这一关键主题。 1. **指针的基本概念** - 指针是一个变量,它存储了一个内存地址,这个地址指向另一...
在C/C++编程中,程序员经常会遇到各种陷阱,这些陷阱往往源于语言的特性和复杂性,例如指针管理不当、数组越界、内存泄漏、资源释放错误等。这些缺陷不仅可能导致程序崩溃或行为异常,还可能引入安全漏洞。 ### ...
C/C++指针是该编程语言中极为重要和灵活的特性之一。本篇内容将详细解释指针的概念、类型、如何声明、以及指针在内存中的作用。 首先,指针是一种特殊的变量,它的作用是存储一个变量的内存地址。在C/C++中,每个...
指针是C和C++中的一个核心特性,它存储了变量在内存中的地址。指针变量本身也有一个内存地址,这个地址存储的是另一个变量的地址。指针声明通常包含类型和指针符号*,如`int *ptr;`表示ptr是一个指向整型变量的指针...
在C/C++编程语言中,指针是至关重要的概念,它允许程序员直接操作内存地址,从而实现高效且灵活的编程。本教程将带你深入理解指针的奥秘,消除对指针的恐惧,并掌握其在实际编程中的应用。 首先,我们要明白指针的...
本文将详细介绍C/C++指针的基本概念、类型、运算以及其在数组遍历中的应用。 首先,理解指针的基础知识至关重要。指针是一个变量,它的值是一个内存地址,这个地址对应于程序中其他变量的存储位置。对于指针,我们...
在编程世界中,C 和 C++ 语言是底层编程的重要工具,而指针则是它们的灵魂。指针的理解和熟练运用是提升编程技能的关键。本资料合集针对“C/C++ 指针”这一主题提供了丰富的学习资源,旨在帮助编程人员克服对指针的...
### 彻彻底底搞定C/C++指针 #### 前言 姚云飞先生的著作《彻底搞定C指针》是一本极具价值的参考书籍,尤其针对那些在C/C++编程过程中对指针概念感到困惑的学习者。本书旨在帮助读者全面掌握C/C++中的指针操作,并...
6. **C库的C++封装**:C++对C库中的函数进行了封装,如头文件和分别对应C语言的和,使得C++代码能以更现代的方式来使用这些函数。 7. **C++11及后续版本的新特性**:从C++11开始,C++引入了一系列新特性,如lambda...
在编程世界里,C/C++语言以其强大的底层控制能力闻名,而指针是其核心特性之一,也是理解和掌握这两门语言的关键。指针是C/C++中的“魔术师”,它能够直接操纵内存,使得程序员可以直接操作数据,实现高效且灵活的...
在C/C++语言中,指针是一种重要的数据类型,能够直接操纵内存,这对于提高程序性能和实现某些特定功能至关重要。然而,对于初学者来说,理解和使用指针可能会显得相当困难,特别是当涉及到复杂类型声明时。本文将...
在C/C++编程语言中,指针是一个至关重要的概念,它允许我们直接操作内存地址,提供了高级的数据操作和算法实现的灵活性。本文将深入探讨指针的各个方面,包括其基本概念、类型、运算符以及在资源管理中的作用,特别...
《林锐-高质量C/C++编程指南》不仅为C/C++开发者提供了一套全面而细致的编程规范,还深入讲解了许多核心概念和技术细节,对于提升编程水平和编写高质量的C/C++程序具有重要的指导意义。无论是初学者还是有一定经验的...
C/C++与Delphi指针和类型系统之差异 Delphi是一种集成开发环境(IDE),它使用Object Pascal语言编写程序,而C/C++是两种广泛使用的编程语言。 虽然Delphi可以使用C/C++编写的库和组件,但是在将C/C++程序转换为...