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

原创 2012年03月30日 23:27:08

                                                         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 声明和定义和初始化(待补充)

1.什么时候声明同时也是定义,什么时候只是声明?  相同点:       C++和java中使用一个标识符之前必须对其进行声明.但是标识符的声明和定义不是一回事儿.       定义是指...

C++的数组、结构体、指针三种复合类型知识点小总结

数组、结构体、指针是C++的3种复合类型。 数组可以在一个数据对象中存储多个不同类型的值,通过使用索引或下标,可以访问数组中的各个元素。...

理解c和c++的复杂类型声明 (掺杂指针)

首先,让我们看看指针与const结合的声明: const int *p;      //p是指向常整形的指针 int const *p;     //错误 int * const p;   //...

C++ 中复合类型声明的理解(尤其是指针数组/数组指针/多维数组的问题)

这几天看《C++ Primer》第五版感觉还是颇有收获的,澄清了之前很多不是很理解的概念,也知道了好多新用法 首先,先澄清一个误解,就是数组的定义问题,在C中C99标准之后数组定义时...

C\C++ 数组与指针彻底总结

  • 2012年05月03日 08:17
  • 22KB
  • 下载

C++指针详解/理解c和c++的复杂类型声明

指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占...

C++一维数组和指针的关系总结

  • 2014年11月01日 17:18
  • 41KB
  • 下载

C#调用C++ 平台调用P/Invoke 结构体--含有内置数据类型的一维、二维数组、字符串指针【六】

【1】结构体中含有内置数据类型的一维数组 C++代码: typedef struct _testStru3 { int iValArrp[30]; WCHAR szChArr[30]; }t...

c++中关于char数组/char*指针/string类型 之间的爱恨情

小渣渣一直被有关string和char[]以及char*的相关问题弄得痛不欲生,传参、返回值、函数调用等到底应该用哪种形式这真的是让小渣癫狂了,今天就好好稍微整理一下吧(欢迎补充与指正) 大多也是我从...

关于C中字符数组,字符指针以及C++中string类型的两两转换及排序

// practise.cpp : 定义控制台应用程序的入口点。 // #include “stdafx.h”#include #include #include #include usi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(总结)C++与java比较教程--7.2 C++中声明指针类型和指针数组(待补充)
举报原因:
原因补充:

(最多只允许输入30个字)