• c++ 引用和指针


    1.引用

       程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。

      int ival=2;

     int &refval=ival;

     ival=8; //此时 refval=8;

      int i=refval   //i的值为8

      int &refval; //报错:引用必须初始化

      int &refval=10;//报错:引用类型的初始值必须是一个对象

      double dval=9;

     int &refval2=dval;//报错:引用类型的初始值必须是一致,是int.

    2.指针

       指针本身就是一个对象,允许对指针赋值和拷贝,而且指针的生命周期内它可以先后指向几个不同的对象

       指针无需在定义时赋初值。和其他内置类型一样,在块作用域内定义的指针如果没有初始化,也将拥有一个不确定的值。

        int ival=9;

        int *p=&ival;

       

       double dval;

      double *pd=&dval; //正确:初始值是double型对象的地址

      double *pd2=pd;    //正确:初始值是指向double对象的指针

      指针值:

      1.指向一个对象。

      2.指向紧邻对象所占空间的下一个位置。

      3.空指针,意味着指针没有指向任何对象。

      4.无效指针,也就是上述情况之外的其他值。

      指针访问对象

      int ival=9;

      int * p=&ival;//p存放着变量ival的地址,或者说p是指向变量ival的指针。

     cout<<*p   //由符号*得到指针p所指向的对象,输出9.

    int *p1=nullptr;  //等价于int *p1=0;

    int *p2=0;//直接将p2初始化为字面常量0

     指针使用例子

    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    void Swap(int *x,int * y)
    {
        *x^=*y;
        *y^=*x;
        *x^=*y;
    
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    
    
         int a=6;
         int b=8;
         Swap(&a,&b);
         cout<<"a="<<a<<endl;  //a=8
         cout<<"b="<<b<<endl;  //b=6
    
         system("pause");
        return 0;
    }
        char* str = "hello";
        while (*str != '')
        {        
            cout << *str;
            str++;
        }    
        //输出hello    
    
        char* str1 = "hello";
        while (*str1 != '')
        {
            cout << *str1++;
            
        }
        //输出hello
        system("pause");
        return 0;

       

  • 相关阅读:
    ViewSwitcher使用范例
    TextSwitcher,译为文字转换器控件
    android开发中系统自带语音模块的使用
    android string.xml %问题
    Android动画解析--XML
    Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
    Android操作系统11种传感器介绍
    开发移动app与服务器端session的状态管理与交互
    android开发分辨率问题解决方案
    android获取手机录
  • 原文地址:https://www.cnblogs.com/ike_li/p/4420411.html
Copyright © 2020-2023  润新知