C++ 指针的指针整理

来源:互联网 发布:淘宝被降权恢复方法 编辑:程序博客网 时间:2024/06/03 17:37

单指针时            char * pa = new char();   //如果这样创建再复制的话有溢出的危险

指针的指针时    char ** ppa = new char*();  //创建一位的字符串指针

单数组时            char * pa = new char[4];  //创建指定的大小的字符数组

指针和数组        char *pa[] = new char* [4];  //创建固定维数的字符串指针


指针的指针        如 : char ** ppa 

                       如赋值   ppa = new char[]{"abcd","efgh","jklmn"};

                                      *ppa 表示数组的第一维

                                      **ppa标识一维数组的第一个元素


二维表的构成

                                void ** table  = new void*[10];

                                for(int i = 0; i < 10; ++i){

         *(table + i) = new void[10];}

销毁  资源 反向 销毁

                                for(int i = 0; i < 10; ++i){

delete [] *(table + 0);}

delete [] table;


关于  *p 与 (*p) 的区别

如果指针只有一个如  char * p 或  char (*p)  其实是一样的,有区别的是数组指针

如 char *p[]   和 char (*p)[]

char * p[4] 是一个指针数组每一个指针都指向了一个char类型数据

char (*p)[4]是一个指向char[4]数组的指针,他指向了一个实际存在的数组

这两种指针都可能会出现越界的危险需要注意


                                      


原创粉丝点击