数组指针,指针数组,动态二维数组,指针
2013-08-30 16:12
225 查看
数组中每个元素具有相同的数据类型,数组元素的类型就是数组的基类型.如果一个数组中的每个元素均为指针类型,
即由指针变量构成的数组,这些数组称为指针数组,他是指针的集合.
指针数组的形式:
类型 *数组名[常量表达式]
例如: int *pa[5];
表示有5个指针变量组成的指针数组,数组中的每个数组元素都是指针。
注意: int *pa[5] 与 int (*pb)[5]的 区别
int (*pb)[5] 表示了一个指向数组的指针pb,pb指向的数组是一位的体积为5的整型数组。
两种方法:
1。先定义一个一维数组的类型,然后再用该类型定义一个一维数组(实际上已经成为二维的)
相当于递归定义
typedef int array[COL]; //使用typedef定义一个具有COL个元素的数组类型
array *a; //定义二维数组,与一维数组相同
a=new array[row]; //为该一维数组(实际上二维)申请空间
该方法定义的动态二维数组的释放只需以下语句即可:
delete[] a;
a=NULL;
2。 使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组
int **b=new int*[row]; //分配一个指针数组,将其首地址保存在b中
for(i=0;i<row;i++) //为指针数组的每个元素分配一个数组
b[i]=new int[col];
该方法定义的动态二维数组的释放需先释放指针数组的每个元素指向的数组,然后再释放该指针数组:
for(i=0;i<row;i++)
{
delete [col]b[i];
b[i]=NULL;
}
delete [row]b;
b=NULL;
即由指针变量构成的数组,这些数组称为指针数组,他是指针的集合.
指针数组的形式:
类型 *数组名[常量表达式]
例如: int *pa[5];
表示有5个指针变量组成的指针数组,数组中的每个数组元素都是指针。
注意: int *pa[5] 与 int (*pb)[5]的 区别
int (*pb)[5] 表示了一个指向数组的指针pb,pb指向的数组是一位的体积为5的整型数组。
动态二维数组的分配与释放
两种方法:1。先定义一个一维数组的类型,然后再用该类型定义一个一维数组(实际上已经成为二维的)
相当于递归定义
typedef int array[COL]; //使用typedef定义一个具有COL个元素的数组类型
array *a; //定义二维数组,与一维数组相同
a=new array[row]; //为该一维数组(实际上二维)申请空间
该方法定义的动态二维数组的释放只需以下语句即可:
delete[] a;
a=NULL;
2。 使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组
int **b=new int*[row]; //分配一个指针数组,将其首地址保存在b中
for(i=0;i<row;i++) //为指针数组的每个元素分配一个数组
b[i]=new int[col];
该方法定义的动态二维数组的释放需先释放指针数组的每个元素指向的数组,然后再释放该指针数组:
for(i=0;i<row;i++)
{
delete [col]b[i];
b[i]=NULL;
}
delete [row]b;
b=NULL;
相关文章推荐
- 指向数组的指针与动态二维数组
- 没有躲过的坑--new一个指针数组、以及创建动态二维数组
- 二维数组,二维数组的动态分配,以及向数组指针&指针数组的延伸
- 【数组与指针】如何在C/C++中动态分配二维数组
- 没有躲过的坑--new一个指针数组、以及创建动态二维数组
- 直接定义的二维数组与动态非配分配的二维数组 数组名代表的指针的一些区别
- c语言动态指针"数组"--一种伪二维数组
- 有关动态创建释放二维数组,以及指向数组的指针问题集合
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- 有关动态创建释放二维数组,以及指向数组的指针问题集合
- 有关动态创建释放二维数组,以及指向数组的指针问题集合 .
- 一个类似auto_ptr<>用于动态分配数组的智能指针
- c语言 创建动态二维数组 读取txt文件到数组
- C++指针数组、数组指针、数组名及二维数组技巧汇总
- 讨论二维指针——动态建立二维数组
- 关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存
- 二维数组与指针数组
- C语言 - 指针数组 多级指针 二维数组 实例讲解
- 复习指针数组以及如何把二维数组赋值给二维指针
- 复习C语言系列二:动态调用函数指针数组