关闭

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

标签: c++javanullclassstringdelete
700人阅读 评论(0) 收藏 举报
分类:

                                                         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;
       }

  
       
     

       

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:210871次
    • 积分:1727
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:11篇
    • 译文:0篇
    • 评论:10条