`
wsql
  • 浏览: 11774955 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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++引用&和指针在作为形参时的区别 int n; int &m = n; 在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,两者在内存中占同样的位置,不对m开辟新的内存空间,对m的任何操作,...

    C/C++指针引用及动态内存分配详细解析

    通过例子解析指针引用及动态内存分配觉得有用看好再下

    C/C++指针的用法总结实例工程

    本工程包括以下内容:(开发环境:VC6.0) 1.双重指针的用法实例; 2.引用的用法实例; 3.指针函数的用法实例; 4.区别指针数组与数组指针的用法实例; 5.迷途指针的用法实例;

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、库函数等各个方面的基础知识,介绍了面向对象编程基本概念,包括如何实现继承、多态和封装等。还介绍了排序...

    C++对象和指针的引用

    在C++中,可以说明指向类的数据成员和成员函数的指针。 指向数据成员的指针格式如下: <类型说明符><类名>::*<指针名> 指向成员函数的指针格式如下: <类型说明符>(<类名>::*<指针名>)(<参数表>) 例如,...

    C++开发面试知识点-C、C++、C++11、C++14

    自己秋招根据面经和基础知识学习总结的知识点,主要内容包括但不限于:volatile关键字、sizeof & strlen、const的作用、enum、inline、delete[] 与 delete、多态的作用、C++与Python的区别、深拷贝与浅拷贝、extern ...

    C/C++ 数组和指针及引用的区别

    C/C++ 数组和指针及引用的区别 1.数组和指针的区别 (1)定义 数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的...

    c/c++面试指南

    很不错的面试指南~~主要面试的经验~~c/c++基础 预处理 const static 引用 指针 字符串 c++继承多态 数据结构 链表 堆栈 排序关于智力测试

    C/C++笔试题(附答案,华为面试题系列)

    答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变 量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调 用C 函数。C++提供了一个C 连接交换指定符号...

    C++编码规范

    C/C++语言编码规范 1 目录 2 1. 命名规则 4 1.1. 起个合适的名字 4 1.1.1. 类的名称(适用于C++) 4 ...1.9. 引用变量和返回引用函数的命名前缀(适用于C++) 7 1.10. 全局变量的命名前缀(适用于C/C++) 7

    C_C++问题总结

    3.2 指针和引用的区别 3.3 构造函数能否为虚函数 3.4 C语言编译全过程 3.5 单例模式 3.5.1 如何实现单例模式 3.5.2 如何实现单例模式 3.6 返回“引用”的格式、好处、注意事项 3.7 指针的表示 3.8 拷贝构造函数的...

    高质量C/C++编程指南(PDF)

    6.6 引用与指针的比较. 第7 章 内存管理 7.1 内存分配方式 7.2 常见的内存错误及其对策 7.3 指针与数组的对比 7.4 指针参数是如何传递内存的? 7.5 FREE 和DELETE 把指针怎么啦? 7.6 动态内存会被自动释放吗?. 7.7...

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

    gSOAP编译器可以集成C/C++和Fortran代码(通过一个Fortran到C的接口),嵌入式系统,其他SOAP程序提供的实时软件的资源和信息;可以跨越多个操作系统,语言环境以及在防火墙后的不同组织。  gSOAP使编写web服务的...

    C# 调用C++DLL(函数参数包含指针)

    C#调用C++DLL,C++DLL中的函数参数包含指针。 绝对可用。

    C/C++中*和&的用法详解

    C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一些用法,都是...

    如何使用JNA调用本地C/C++动态链接库详细示例代码

    2:基本数据类型的指针和引用 3:结构体 4:结构体的指针和引用 5:函数指针和回调函数 6:字符串指针 7:输入一个数组 8:输出一个数组并释放空间 本资源包括三个工程: C++动态链接库; VC调用本地动态链接库; ...

    C++ 中引用与指针的区别实例详解

    C++ 中引用与指针的区别实例详解 引用是从C++才引入的,在C中不存在。为了搞清楚引用的概念,得先搞明白变量的定义及引用与变量的区别,变量的要素一共有两个:名称与空间。  引用不是变量,它仅仅是变量的别名,...

    C/C++和Java达到swap不同功能

     C/C++中swap功能的本质:通过传递变量地址(指针或引用)来交换变量地址中的值。  Java标榜当中对C/C++一个非常大的改进是:Java对程序猿屏蔽了变量地址的概念,降低指针误用。  在Java世界中函数

    c++中引用和指针的区别和联系

    C++中的引用和指针 ★ 相同点: 1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名(java中的引用其实也是别名的意思)。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名;2. ...

Global site tag (gtag.js) - Google Analytics