zoukankan      html  css  js  c++  java
  • C++指针学习

    指针的概念:指向另一个变量的地址,用于间接访问该变量。

    指针变量的概念:用于存放地址的变量。

    指针变量的初始化: 存储类型 数据类型 *指针=初始地址;

    例如:  int *pa = &a;

    注意事项:

      1、用变量地址作为初始值时,该变量必须在指针初始化之前已经说明过,且变量类型与指针类型一致。

      2、可以用一个已赋初值的指针去初始化另一个指针变量。

      3、不要用一个内部auto型的变量去初始化static型的指针。

      4、可以将指针赋值为整数0,表示空指针。

      5、允许声明指向void类型的指针。该指针可以被赋予任何类型对象的地址。void类型指针赋值给其他类型指针的时候需要强制类型转换。

    指针的加减运算:

    指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。  这种运算的结果取决于指针指向的数据类型。

    例如:

    y=*px++;相当于y=*(p++);

    指向数组元素的指针:

    int a[10];

    *p;

    p = a;

    如果有上述的关系,那么a[i],*(p+i),*(a+i),p[i]都是等效的。

    不能写a++,因为a是数组首地址,是常量。

    指针的关系运算:

    指向相同类型数据的指针之间可以进行各种关系运算。

    指向不同类型数据的指针,以及指针与整数变量之间的关系运算是没有意义的。

    指针可以与0之间进行等于或者不等于的关系运算。例如:p==0或p!=0

    指向常量的指针:const char * name = "John"; 所指向的对象的值不能改变。

    常量指针:char * const n = "John"; 指针本身不能改变

     指向类类型对象的指针:

    声明形式:

    类名 *对象指针名

    例如:Point A(10,20);

    Point *p;

    p=&A;

    可以通过指针访问对象成员  p->成员名

  • 相关阅读:
    标识类型模式
    脏检查和快照的故事
    Hibernate入门案例及增删改查
    Oracle函数解析
    Oracle基础及三层分页查询
    java解析xml文档(dom)
    TCP和UDP的聊天
    java线程同步
    试题分析(第三套)
    java线程的简单实现及方法
  • 原文地址:https://www.cnblogs.com/SeawinLong/p/3734120.html
Copyright © 2011-2022 走看看