美文网首页
C/C++ 指针和引用的区别

C/C++ 指针和引用的区别

作者: jcyan | 来源:发表于2018-07-19 17:13 被阅读0次
  • 指针和引用的区别
    性质方面
    1.指针是一个实体,需要分配内存空间;引用只是变量的别名,不需要分配空间。
 void main(){
    int a = 1; 
    int *p = &a;
    int &b = a;
    cout << p << endl;
    cout << *p << endl;
    cout << &b << endl;
    cout << b << endl;
}
//结果是:地址/1/地址/1

2.引用在定义的时候必须要初始化,并且不能改变。指针在定义的时候不一定要初始化,并且指向空间可变。(引用的值不能为NULL)
3.有多级指针,但是没有多级引用。只能有一级引用。
4.指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用是引用的变量值加1)

void main(){
    int a[2] = {123,256};
    int *p = a;
    int &b = a[0];
    b++;
    cout << a[0]<< endl;
    cout << a[1]<< endl;
    cout << *p << endl;
    cout << b << endl;
    //124,256,124,124
    p++;
    cout << a[0] << endl;
    cout << a[1] << endl;
    cout << *p << endl;
    cout << b << endl;
    //124,256,256,124
}
  1. “sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身的大小
int a; //sizeof(a),就是求变量a所占内存,值为4;
int &b=a; // sizeof(b)==sizeof(a)
int *p = &a;// sizeof(p),指针p所占的内存,指针变量在32/64位系统下都是4个字节
            //sizeof(*p) 指针p指向变量所占的内存,也就是sizeof(a)

6.如果返回动态内存分配的对象或内存,必须使用指针,引用可能引起内存泄露。


指针和引用作为函数参数进行传递时的区别

  1. 函数参数中的引用传递可以改变参数的值,值传递不会改变值
void main(){
double x= 3.0;
cout<<cube(x);
cout<<"= cube of " << x<<endl;
cout<<refcube(x);
cout<<"= cube of "<< x << endl;
}
double cube(double a){
       a*=a*a;
       return a;
}
double recube(double &ra){
      ra*=ra*ra;
      return ra;
}
// 27 = cube of 3
// 27 = cube of 27
refcube()函数修改了main中的x值

相关文章

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • 指针和引用的辨析

    先来看两个图 指针与引用的区别 1.指针在C和C++中均有,而引用是C++独有的特性(*指针申明符号,&引用申明符...

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • java中的引用与c++中的指针的区别

    java中的引用与c++中的指针的区别 Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对...

  • C/C++ basis 01

    1. C和C++区别 2. 指针和引用 sizeof(引用)等于 引用指向对象的大小。 对比值传递,引用传递(引用...

  • 指针和引用

    指针和引用 1. 引用和指针有什么区别? 引用是 C++ 中新增的变量类型,是对 C 的一个扩充。引用给变量起一个...

  • 绿盟面试准备

    C++基础知识 指针和引用的区别: 指针是一个变量 ,引用是别名.指针可以初始化为空, 引用必须初始化为具体的值....

  • C++入门系列博客三 引用和指针

    C++ 引用和指针 作者:AceTan,转载请标明出处! 引用和指针对于C++来说很重要,是学习C++绕不过去的一...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • C++面试题目总结

    C++常考题目参考本 1、指针和引用的区别 实体与别名 内存分配,指针需要引用不需要 sizeof() 对象的大小...

网友评论

      本文标题:C/C++ 指针和引用的区别

      本文链接:https://www.haomeiwen.com/subject/roxspftx.html