C/C++: 指针数组、数组指针、定长数组
来源:互联网 发布:ros bumper Python 编辑:程序博客网 时间:2024/05/21 11:23
题记:基本功要扎实。
一. 指针数组
array of pointers: 用于存储指针的数组,即数组元素都是指针;
int *a[4] = *(a[4]): 表示数组a有4个元素,每个元素都是int型的指针;
二. 数组指针(行指针)
a pointer to an array: 指向数组的指针
int (*p)[n]: ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。
(指针数组有用,数组指针没怎么用到,所以感觉理解的不是很好~ 之后用到的时候再补上)
三. 数组initialize - release
1. 一维数组
float *array; // 初始化为array[n]
// initialize
array = new float[n];
// release
delete [] array;
2. 多维数组
float ***array; // 初始化为array[n_1][n_2][n_3]大小
// initialize
array = new float**[n_1];
for (int i = 0; i < n_1; i++)
array[i] = new float *[n_2];
for (int j = 0; j < n_2; j++)
array[i][j] = new float [n_3];
// release
for (int i = 0; i < n_1; i++)
{ for (int j = 0; j < n_2; j++)
delete [] array[i][j];
delete [] array[i]; }
delete [] array;
float *farray[3]; // 二维指针数组,初始化为farray[3][m][n]
float **qarray[3]; // 三维指针数组,初始化为qarray[3][n]
// initialize
for (int i = 0; i < 3; i++)
farray[i] = new float [n];
for (int i = 0; i < 3; i++)
{ qarray[i] = new float *[m];
for (int j = 0; j < m; j++)
qarray[i][j] = new float [n]; }
// 使用memset初始化数组为零
for (int i = 0; i < 3; i++)
memset(farray[i], 0, n*sizeof(float));
for (int i = 0; i < 3; i++)
{ for (int j = 0; j < m; j++)
memset(qarray[i][j], 0, n*sizeof(float)); }
// release
for (int i = 0; i < 3; i++)
delete [] farray[i];
for (int i = 0; i < 3; i++)
{ for (int j = 0; j < m; j++)
delete [] qarray[i][j];
delete [] qarray[i]; }
- C/C++: 指针数组、数组指针、定长数组
- 指针和定长数组
- C指针 --- 指针数组 数组指针
- 【C/C++】指针数组
- 【c/c++】指针数组和数组指针
- c 数组 和 数组指针
- 【C++】指针(3):指针&数组
- 【C++】指针(4):指针数组
- c 指针,二级指针,数组
- c语言 数组 指针
- [C]指针数组
- C语言--指针,数组
- [C]函数指针数组
- C 函数指针数组
- c动态分配 数组指针
- C数组与指针
- c++---数组和指针
- c语言指针数组
- 商业智能掌控ERP金蝶BI前景被看好的点
- newInstance() 和 new 区别
- ubuntu14.04confluence5.4.4、5.6.6、5.9.4破解版安装
- Ubuntu搜狗输入法
- oracle中行级锁与表级锁
- C/C++: 指针数组、数组指针、定长数组
- wnmp(windows+nginx+mysql+php)的环境搭建和配置
- LeetCode刷题【Array】 Word Search
- Java中抽象类和接口区别
- 快速创建表的方法
- linux下tomcat 80端口被占用的解决方法
- IntelliJ Idea 常用快捷键列表
- Linux安装Redis服务
- md5和base64加密后