C/C++ 数组与指针彻底总结 本篇文章详细讲解了指针、指针数组、数组指针、指针的指针等的应用,旨在帮助读者深入理解 C/C++ 语言中的数组和指针概念。 一、指针数组 指针数组是一个数组里存放的都是同一个类型的指针。例如,int *a[10]; 它里边放了 10 个 int * 型变量,每个 a[i] 指向的类型为 int。由于它是一个数组,已经在栈区分配了 10 个 (int * ) 的空间,每个空间都可以存放一个 int 型变量的地址。 例如,一维指针数组 int*a[2]; 必须是常量表达式,不能是动态的参数。释放空间时,需要逐个释放,每一维又申请了空间。 二、数组指针 数组指针是一个指向一维或者多维数组的指针。例如,int *b; b=new int[m]; 分配的数组大小为 m,在函数执行时才分配,所以叫“动态”。释放空间时,需要使用 delete [],因为是数组指针,释放时不要漏掉”[]”。 例如,指向了一个二维 int 型数组的首地址 b2; int (*b2)[10]; 注意括号不能缺少,否则不是这个意义了。b2=new int[m][10]; b2 指向 m 个大小为 10 的数组。释放空间为 delete[] b2; 三、指针的指针 指针的指针是一个三级指针,每一级的大小动态变化,m n w。例如,int *p; p=new int [m]; 申请空间时,每一级的大小都可以动态变化。访问时,使用 p[i][j][k]。释放空间时,需要按照从低级到高级反方向释放,否则会造成内存泄露。 四、数组和指针的区别 数组和指针并不相同。声明相当于普通的声明,而定义相当于特殊的声明。左值和右值的区别在于,左值编译时可知,右值只有运行时可知。指针是间接访问数据的,首先取得指针的内容,把它作为地址,然后从这个地址中取值。 本篇文章对 C/C++ 语言中的数组和指针概念进行了详细的讲解,旨在帮助读者深入理解这两者的应用和区别。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助