[C++]指针知识点小结

来源:互联网 发布:excel数据转换到word中 编辑:程序博客网 时间:2024/04/26 07:05
  1. 指针的声明
    string  *p//指向string类型的指针,等价于string*  pstring*  p1, p2//p1是指向string类型的指针,p2为string,等价于 string  *p//和string p2const double  *cptr//指向double常量的指针double  *const cptr//指向double类型的常量指针///////////////////////////////////////////////////////////////////////////////////int ival =1024;int  *pi=&ival;int  **ppi=π//指向指针的指针

  2. 指针的取值

    l  保存一个特定对象的地址

    l  指向某个对象后面的另一个对象

    l  0值,表示不指向任何对象

    intival=1024;int  *pi=0;//不指向任何对象,将其他int值赋给指针是非法的即 int *pi=5 //errorint  *pi2=&ival//pi2存放ival地址,指向ivalpi=pi2;//ok,pi2也指向ival/////////////////////////////////////////////////////int  *p1=&ival//初始化赋值,等价于int  *p1;  p1=&ival;int  *p2;*p2=&ival//erro类型不匹配

  3. 指向const对象的指针(实际程序中,作为函数形参,从而确保传递给函数的实际对象在函数中不会因为形参而被修改)

    l  指向const对象的指针,不能用来改变其所指的const的值,但是可以指向其他const对象

    const double ival=1024;const double ival2=2014;double ival3=3096;const double *cptr;=&ival;*cptr=20;//errorcptr=&ival2;//ok,但是可以指向新的const对象cptr=&ival3;//ok, 或其它非const对象

    l  普通、非const对象指针不能指向const对象

    const double pi=314;double *ptr=π//error


    l  不能用void *指针保存const对象地址,必须用const void *类型

    const int universe =42;const void *cpv=&universe;//okvoid *pv=&universe//error

  4. const指针

    l  指针本身的值不能修改

    int num=0;int num2=3;int *const pi=#//okpi=&num2;//error

    l  但其所指向的对象值能否修改完全取决于该对象的类型

    int num=0;int *const pi=#//ok*pi=15;

  5. 指向const对象的const指针
    const double pi=3.14;const double *const p=π


原创粉丝点击