轻雨漫步的专栏

学习编程时的总结感悟

(总结)C++与java比较教程--7.2 C++中声明指针类型和指针数组(待补充)

                                                         C++中声明指针类型和指针数组

      C++和Java最引人瞩目的区别之一就在于C++有指针而Java没有指针. 

      注意:有人认为Java中的对象引用实际上就是指针,但是由于Java中的对象引用并不直接是一个内存地址,不能对其进行解引用,也不能对其进行指针运算,所以不认为其为指针.

    1.C++中声明指针类型:

   (1).任意类型的指针的声明.
      int * p = NULL;
     数据类型  * p 就表示指向此种数据类型变量的指针.

    (2),任意类型指针的赋值和初始化.
       int i  = 100;
       int * p1 = NULL;
       p1 = &i;

       int *p2 = &i;
     (3),任意类型的指针的解引用(间接访问):
      int  j  =  *p1;

     2.C++中特别需要使用指针的3中情况:

      (1). 多态:
       在C++中,只有当对象是通过指针或者引用进行操纵时才能表现出多态的行为.

      (2),相互嵌套类:
      class B;     //类的前向声明(不完整声明)
      class  A
      {
      B  b;
      } 
     class B
      {
      A a;
      }

      (3) 需要一个"null"对象:
         创建一个对象:
         Person* ptr = new Person( "John Doe", "Main Street USA" );
         "清空"这个对象的操作是:
          delete  ptr;
          ptr = NULL;

         但是这样创建的对象  Person peson1( "John Doe", "Main Street USA" );  由于没有涉及到指针,故不能如上操作来清空.

      3.C++中的指针数组:

(1),声明指针数组:
    int  * int_array[100];
    const  int  MaxClassSize = 100;
    string * names [MaxClassSize ];

(2).字符串指针数组的初始化:
      方法1:
      string * names [MaxClassSize] = {0};
      方法2:
      for (int i=0;i<MaxClassSize;i++)
      {
       names[i] = NULL;
       }

  
       
     

       

阅读更多
上一篇(总结)C++与java比较教程--7.1 声明和定义和初始化(待补充)
下一篇(总结)C++虚继承,虚基类、虚函数与纯虚函数的概念和引用(待补充)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭