C++学习计划之指针和多维数组的操作
2014-11-12 22:18
393 查看
多维数组,即是数组的数组,
一维数组 int a[5]; int *p;p=a;
a其实是常值指针,就是列为5的一个元素为int的数组地址,
a[3]<=>*(p+3)<=>p[3
二维数组 int a[4][5];这时a是一个指向a[0]数组的地址,a[0]也是一个地址,是第一行数组的地址,
所以将a用指针来指向需要相同的数据类型,及要定义 int (*p)[4] 这是一个指针指向元素为int的4列数组。
可以int (*p)[4] = a;这是p就是指向一个一维数组的指针,那么(*p)是什么意思呢 。与a[0]的意思是一样的,代表的就是一维数组的地址,
所以若想对每个元素操作,就学学上面一维数组吧
int * q;q=*(p+2);
*(q+2)就是a[2][2];
测试:
run
![](http://img.blog.csdn.net/20141112222025754?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDQ0MjMyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
----------------------------------------------------------------------------------------
有机会再补充
一维数组 int a[5]; int *p;p=a;
a其实是常值指针,就是列为5的一个元素为int的数组地址,
a[3]<=>*(p+3)<=>p[3
二维数组 int a[4][5];这时a是一个指向a[0]数组的地址,a[0]也是一个地址,是第一行数组的地址,
所以将a用指针来指向需要相同的数据类型,及要定义 int (*p)[4] 这是一个指针指向元素为int的4列数组。
可以int (*p)[4] = a;这是p就是指向一个一维数组的指针,那么(*p)是什么意思呢 。与a[0]的意思是一样的,代表的就是一维数组的地址,
所以若想对每个元素操作,就学学上面一维数组吧
int * q;q=*(p+2);
*(q+2)就是a[2][2];
测试:
typedef int arry[4]; int main() { int b[4]={1,2,3,4}; int* f=b; int a[3][4]={0}; arry *p; //int (*p)[4]=a; int *q; q=*p; for(int i =0;i<4;i++) { *(q+i)=i; } for(int i =0;i<4;i++) { cout<<*(q+i)<<" "; //cout<<*((*k)+i)<<" "; } cout<<endl; for(int i =0;i<4;i++) { cout<<f[i]<<" "; } cout<<endl; return 0; }
run
----------------------------------------------------------------------------------------
有机会再补充
相关文章推荐
- C++学习笔记--指针和多维数组
- c++学习笔记2——指向字符串的指针数组?
- C/C++ 多维数组与指针
- C++学习笔记(四)——数组和指针
- c++ 数组及指针算术运算操作
- C++基础学习系列第一部分——再议数组与指针
- c++学习笔记--指针初始化和赋值操作的约束
- 学习札记: C++指向字符数组的指针
- C++ Primer学习笔记2--c++中的数组和指针
- 每日一题(25)——多维数组的指针操作
- C++基础学习系列第一部分——数组和指针
- C++基础教程 学习笔记(二) 数组、字符串和指针
- 【菜鸟C++学习笔记】17.指针在堆中的操作
- C++ Primer 学习笔记——第4章 数组和指针
- C++中使用基类指针操作子类数组的分析
- C/C++中关于地址、指针和引用变量的学习笔记(二) : 数组
- c++入门学习(内存与指针及数组)
- [C++ 学习] C++ Primer 习题 4.36 指针数组 & 数组指针
- C语言学习6 :指针的定义,指针类型要合法,指针要初始化,指针做函数参数,数组和指针的通用性,指针+1所代表的空间,void * 指针,交换函数中的指针,数组和字符型指针区别,字符型指针的应用,使用指针完成字符操作函数
- C++ 指针 多维数组传递参数