C++primer 4.4 多维数组、指针数组、数组指针(未完)
来源:互联网 发布:mdf数据库恢复 编辑:程序博客网 时间:2024/06/05 16:56
简介
参照《数组指针和指针数组》
================================================================================
一、多维数组的初始化
1、初始化
//几种初始化int ia[3][4]={{0,1,2,3},{4,5,6,7},{8,9,2,1}};int ia2[3][4]={0,1,2,3,4,5,6,7,8,9,2,1};int ia3[3][4]={{0},{2},{3}};int ia4[3][4]={0,2,3,4};//省略了花括号,那么这里只初始化了第一行元素,其余元素默认初始化为0
2、多维数组的下标引用
const size_t rowsize=3;const size_t colsize=4;int ia[rowsize][colsize];for(size_t i=0;i!=rowsize;i++){for(size_t j=0;j!=colsize;j++)ia[i][j]=i*colsize+j;}
二、数组指针和多维数组
- 与普通数组一样,使用多维数组名时,实际上将其自动转换为指向该数组第一个元素的指针。
- 因为多维数组其实就是数组的数组,所以由多维数组转换而成的指针类型应该是指向第一内层数组的指针。
- 定义指向数组的指针和如何定义数组本身类似:首先声明元素类型,后接(数组)变量名字和维数。 -
int ia[3][4]; int (*ip)[4]=ia; //因为有(),优先级高,所以从左往右看,先是指针,指向数组的指针,指向数组ia的指针,元素表示(*a)[i]ip=&ia[2];
三、指针数组
int *a[4] //指针数组,用来存放指针的数组,数组a中的元素都为int型的指针//元素表示:*a[i] 和 *(a[i])是一样的,因为[]优先级高于*//所以从右往左来看,首先是数组,把int *看成一个整体,是一个存放了int 型指针的数组
int main(){int c[4]={1,2,3,4};int *a[4];//定义一个指针数组,数组里面放的都是指针int (*b)[4];// 定义一个数组指针,指向数组第一个元素的指针,还没有初始化b=&c; //使b 指向数组c,注意这里不要写成b=c!!!!for(int i=0;i<4;i++)a[i]=&c[i]; //将数组c中元素地址赋给数组acout<<*a[1]<<endl;//输出2cout<<(*b)[2]<<endl;//因为先求*b,而*b的值时c,所以等同于c[2],所以输出3就对return 0;}
0 0
- C++primer 4.4 多维数组、指针数组、数组指针(未完)
- C++primer 4.4 数组指针和指针数组(转)
- C++Primer--数组、指针
- C 指针和多维数组
- [C语言]多维数组指针
- 《C Primer Plus 5th》读书笔记-----指针和多维数组
- c primer plus 指针与多维数组探究
- 深入浅出C指针(三)多维数组
- c 多维数组指针(一站式编程)
- 指针与多维数组(C++)
- C语言 指针数组 多维数组
- 指针数组 多维数组C语言
- C语言 指针数组 多维数组
- C语言 指针数组 多维数组
- 指针与数组(未完)
- 【C语言复习(十七)】多维数组和多维指针
- C++Primer 数组和指针
- 多维数组和指针
- freemarker错误总结
- 正则表达式工作原理
- Windows8和Windows10系统改装Win7系统的问题和解决办法
- RTSP协议(一)
- Difference between HEAD / Working Tree / Index in Git
- C++primer 4.4 多维数组、指针数组、数组指针(未完)
- char或unsigned char给int赋值区别
- linux下mysql中文乱码问题
- 如何在Qt Creator中调试Ubuntu Scope
- Linux下用memory方式访问PCIE空间
- webview中html页面开发注意事项
- linux下解决mysql区分大小写问题
- Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解(实例)
- 在URL中传递中文的解决方式