zoukankan      html  css  js  c++  java
  • 学习问题

    引用与指针

    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)

  • 相关阅读:
    sql server 错误9003:LSN无效(日志扫描号无效),对数据库的修复.
    用C#调用C++DLL时的字符串指针参数传递问题
    sql server 2005中的Service broker小示例(未完善)
    水晶报表钻取数据,在明细层导的时候,报表会从新加载,并显示主报表
    [转]gridview获取当前行索引的方法
    验证视图状态 MAC 失败的解决办法
    SQL SERVER 2005中对存储过程进行签名(转)
    MSChart图表控件的一些使用
    Repository模式
    职能式管理和流程式管理
  • 原文地址:https://www.cnblogs.com/lirong21/p/3908549.html
Copyright © 2011-2022 走看看