`

C/C++的指针和引用

阅读更多
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++指针的用法总结实例工程

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

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

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

    C++对象和指针的引用

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

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

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

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

    C++引用&和指针在作为形参时的区别

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

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

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

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

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

    C_C++问题总结

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

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

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

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

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

    指针和引用的区别

    这个课件详细的介绍了指针和引用的区别,对于C/C++的初学者来说,有很大的帮助,值得学习!

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

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

    C/C++中指针和引用之相关问题深入研究

    一、基本知识指针和引用的声明方式:声明指针: char* pc;声明引用: char c = ‘A’ char& rc = c; 它们的区别:①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话...

    c/c++ 学习总结 初学者必备

    (C语言里参数传递都是传值,是一个拷贝,修改指针,只是改变了拷贝的指向,原指针指向并没有改变,而修改指针的内容则是可以的。)如果函数的参数是一个指针,不要指望用该指针去申请动态内存。(即上面所说的修改...

Global site tag (gtag.js) - Google Analytics