• 学习问题


    引用与指针

    1.    引用数组: Int a[10]={0}; int (&cp)[10]=a;//此句代表cp是数组a的别名,是同一块内存空间(a当右值运算时,可以是数组首元素的地址,在引用时,代表整个数组空间)//Int&cp[10]  , 无二级引用

    2.    返回临时变量(内置类型)存在内部寄存器中(EAX),自定义类型存在内存中。

    3.     临时变量不可进行自增;除非为返回引用。

    4.     返回的引用要求: 变量为全局变量; 变量为静态变量; 该变量是以引用进,以引用出;

    5.    自定义函数分配在同一块栈帧空间;

    6. 引用返回的是变量的地址,存在内部寄存器中,然后通过地址找到该变量的位置;

    7.   Int&a=======int * const a;

    8 .引用二维数组和一维数组

    void fun1(int br[10])//error C2664: 'fun1' : cannot convert parameter 1 from 'int [5][10]' to 'int []' {  cout<<sizeof(br)<<endl; }

    void fun2(int **br)// error C2664: 'fun2' : cannot convert parameter 1 from 'int [5][10]' to 'int ** '  {  cout<<sizeof(br)<<endl; }

    void fun3(int (*br)[10]) {  cout<<sizeof(br)<<endl; } void fun4(int br[][10])//退化为数组指针等同于int (*br)[10] {  cout<<sizeof(br)<<endl; } void fun5(int (&br)[5][10])//必须明确引用对象的大小 {  cout<<sizeof(br)<<endl; } void fun6(double&br)//引用变量 {  cout<<sizeof(br)<<endl; } void fun7(int (&br])//引用一维数组 {  cout<<sizeof(br)<<endl; }

    9.  内置类型: const int a=10; const int &b=a;(编译器处理成Int temp =a; const int &b=temp)  ,相反,自定义类型 const test t(10); const test &y=t(y是t的别名,中间没有创建临时对象,test &u=t(错误)

    10. const & a=12.23(无类型的引用默认为整型int)

    11. 拷贝构造函数的参数必须为对象的引用(即 point(const point &p) )  若把一个真实的对象作为参数传递引起无穷递归。

    12. 类的普通成员不可初始化,静态成员在类外必须初始化,因为它不属于某个对象。

    13.  函数编译,先创建全局变量及对象,在创建主函数对象。

    14.  namespace   XXXX{}自定义命名空间,默认为std空间。访某个空间,或者某个对象加作用域分辨符::  访问全局变量(::max)

    15.   struct StrNode
    {
     int ref;
     int len;
     char data[];//柔性数组 
    };   sizeof(StrNode)=sizeof(int)+sizeof(int)

  • 相关阅读:
    Android APK瘦身方法小结
    快速了解Android重要机制
    Android 画笔Paint
    android 图片凸出
    金钱转换
    WPF属性与特性的映射(TypeConverter)
    XMAL 中x名称控件的Auttribute
    AtCoder Grand Contest 012 B
    scau 17967 大师姐唱K的固有结界
    Centos7开机自动启动服务和联网
  • 原文地址:https://www.cnblogs.com/lirong21/p/3908549.html
Copyright © 2020-2023  润新知