C语言程序设计PPT课件第11章指针和数组.ppt
《C语言程序设计PPT课件第11章指针和数组.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计PPT课件第11章指针和数组.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第11111111章章章章 指针和数组指针和数组指针和数组指针和数组2023/1/162/42本章学习内容本章学习内容 指针与一维数组间的关系,指针与二维指针与一维数组间的关系,指针与二维数组间的关系数组间的关系 向函数传递一维数组和二维数组向函数传递一维数组和二维数组 指针数组,命令行参数指针数组,命令行参数 动态数组,动态内存分配动态数组,动态内存分配2023/1/163/4211.1 指针和一维数组间的关系指针和一维数组间的关系 intint a4=1,2,3,4;a4=1,2,3,4;0 0 x0037b000 x0037b000a0a00 0 x0037b004x0037b00
2、40 0 x0037b008x0037b0080 0 x0037b00Bx0037b00Ba a.1intint *pa=a;pa=a;papaintint *pa=&a0;pa=&a0;234a1a1a2a2a3a3数组名是一个常量指针数组名是一个常量指针数组名是一个常量指针数组名是一个常量指针不能修改该指针的指向不能修改该指针的指向不能修改该指针的指向不能修改该指针的指向指针可当数组名使用指针可当数组名使用指针可当数组名使用指针可当数组名使用2023/1/164/4211.1 指针和一维数组间的关系指针和一维数组间的关系 intint a4=1,2,3,4;a4=1,2,3,4;0 0 x
3、0037b000 x0037b000a0a00 0 x0037b004x0037b0040 0 x0037b008x0037b0080 0 x0037b00Bx0037b00Ba a.1intint *pa=a;pa=a;papaintint *pa=&a0;pa=&a0;234a1a1a2a2a3a3数组元素的等价引用形式数组元素的等价引用形式数组元素的等价引用形式数组元素的等价引用形式aiai*(a+i)*(a+i)paipai*(pa+i)*(pa+i)a+1a+1*(a+1)*(a+1)pa0pa0*(pa+2)*(pa+2)pa+2pa+2*pa*pa2023/1/165/4211.
4、1 指针和一维数组间的关系指针和一维数组间的关系 intint a4=1,2,3,4;a4=1,2,3,4;0 0 x0037b000 x0037b000a0a00 0 x0037b004x0037b0040 0 x0037b008x0037b0080 0 x0037b00Bx0037b00Ba a.1p p234a1a1a2a2a3a3for(i=0;i4;i+)scanf(%d,&ai);for(i=0;i4;i+)printf(%d,ai);for(p=a;p(a+4);p+)scanf(%d,p);for(p=a;p(a+4);p+)printf(%d,*p);*p*p*p*pa+4a
5、+42023/1/166/4211.1 指针和一维数组间的关系指针和一维数组间的关系【例例例例11.111.111.111.1】演示数组元素的引用方法演示数组元素的引用方法演示数组元素的引用方法演示数组元素的引用方法 2023/1/167/4211.1 指针和一维数组间的关系指针和一维数组间的关系【例例例例11.111.111.111.1】演示数组元素的引用方法演示数组元素的引用方法演示数组元素的引用方法演示数组元素的引用方法 2023/1/168/4211.1 指针和一维数组间的关系指针和一维数组间的关系【例例例例11.211.211.211.2】演示数组和指针变量作函数参数演示数组和指针变
6、量作函数参数演示数组和指针变量作函数参数演示数组和指针变量作函数参数 被调函数的形参声明为被调函数的形参声明为数组类型,用下标法访数组类型,用下标法访问数组元素问数组元素2023/1/169/4211.1 指针和一维数组间的关系指针和一维数组间的关系【例例例例11.211.211.211.2】演示数组和指针变量作函数参数演示数组和指针变量作函数参数演示数组和指针变量作函数参数演示数组和指针变量作函数参数 被调函数的形参声明为被调函数的形参声明为指针指针类型类型,用指针法访,用指针法访问数组元素问数组元素2023/1/1610/4211.1 指针和一维数组间的关系指针和一维数组间的关系【例例例例
7、11.211.211.211.2】演示数组和指针变量作函数参数演示数组和指针变量作函数参数演示数组和指针变量作函数参数演示数组和指针变量作函数参数 在主函数中这样做没有在主函数中这样做没有多大的实际意义多大的实际意义2023/1/1611/4211.2 指针和二维数组间的关系指针和二维数组间的关系 可将二维数组看作一维数组,其每个数组元素又是可将二维数组看作一维数组,其每个数组元素又是可将二维数组看作一维数组,其每个数组元素又是可将二维数组看作一维数组,其每个数组元素又是一个一维数组一个一维数组一个一维数组一个一维数组 按行顺序存放所有元素按行顺序存放所有元素按行顺序存放所有元素按行顺序存放所
8、有元素a00a01a02a10a11a12a0a0a1a1a0+1a0+2&a0a000&a1a100&a11a1+1&a12&a01&a02 a00 a0a01a02a10 a1 a11a12 a a1+2shortshort a23;a aa a+1+12023/1/1612/4211.2 指针和二维数组间的关系指针和二维数组间的关系a00a01a02a10a11a12 a00 a0a01a02a10 a1 a11a12 a shortshort a23;a aa a+1+1a 代表代表二二维数组的首地址,维数组的首地址,第第0 0行行的地址,的地址,行地址行地址行地址行地址a+i 代表代
9、表第第i i行行的地址的地址但并非增加但并非增加i i个字节!个字节!2023/1/1613/42a00a01a02a10a11a12a0a0a1a1&a0a000&a1a100 a00 a0a01a02a10 a1 a11a12 a shortshort a23;*(a+i)即即 ai 代表代表第第i行行第第第第0 0列列列列的地址的地址,列地址列地址列地址列地址a aa a+1+1*(a+i)+j 即即 ai+j代表代表第第i行行第第第第j j列列列列的地址的地址&aij&a12a1+211.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的
10、关系2023/1/1614/42a00a01a02a10a11a12a0a0a1a1&a0a000&a1a100 a00 a0a01a02a10 a1 a11a12 a shortshort a23;a aa a+1+1&a12a1+2*(*(a+i)+j)即即 aij 代表代表第第i行第行第j列列的的内容内容内容内容*(a+i)即即 ai 代表代表第第i行行第第第第0 0列列列列的地址的地址,列地址列地址列地址列地址*(a+i)+j 即即 ai+j代表代表第第i行行第第第第j j列列列列的地址的地址&aij 11.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关
11、系指针和二维数组间的关系2023/1/1615/42 二维数组的二维数组的二维数组的二维数组的行行行行指针指针指针指针int int(*p)3;p)3;p=a;p=a;/用行地址初始化用行地址初始化用行地址初始化用行地址初始化 逐行查找逐行查找逐行查找逐行查找-逐列查找逐列查找逐列查找逐列查找pshortshort a23;a00a01a02a10a11a12a12a aa+1a+111.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系2023/1/1616/42 二维数组的二维数组的二维数组的二维数组的行行行行指针指针指针指针int in
12、t(*p)3;p)3;p=a;p=a;/用行地址初始化用行地址初始化用行地址初始化用行地址初始化 逐行查找逐行查找逐行查找逐行查找-逐列查找逐列查找逐列查找逐列查找pshortshort a23;a00a01a02a10a11a12a+1a+1a a11.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系2023/1/1617/42 二维数组的二维数组的二维数组的二维数组的行行行行指针指针指针指针int int(*p)3;p)3;p=a;p=a;/用行地址初始化用行地址初始化用行地址初始化用行地址初始化 逐行查找逐行查找逐行查找逐行查找-逐列
13、查找逐列查找逐列查找逐列查找forfor(i=0;im;i+)(i=0;im;i+)forfor(j=0;jn;j+)(j=0;jn;j+)printf(printf(%d%d,*(*(p+i)+j)*(*(p+i)+j););shortshort a23;a00a01a02a10a11a12pa aa+1a+111.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系2023/1/1618/42 二维数组的二维数组的二维数组的二维数组的列列列列指针指针指针指针int int*p;p;p=p=*a;a;/用列地址初始化用列地址初始化用列地址初始
14、化用列地址初始化 逐个查找逐个查找逐个查找逐个查找相对偏移量相对偏移量相对偏移量相对偏移量forfor(i=0;im;i+)(i=0;im;i+)forfor(j=0;jn;j+)(j=0;jn;j+)printf(printf(%d%d,*(p+*(p+i*n+ji*n+j););pshortshort a23;a00a01a02a10a11a12*a*a或或或或a0a0pi*n+ji*n+j11.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系2023/1/1619/42【例例例例11.311.311.311.3】输入一个输入一个输入一
15、个输入一个3 3 3 3行行行行4 4 4 4列的列的列的列的二维数组,然后输出这个二维数组,然后输出这个二维数组,然后输出这个二维数组,然后输出这个二维数组的元素值二维数组的元素值二维数组的元素值二维数组的元素值 11.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系2023/1/1620/42【例例例例11.311.311.311.3】输入一个输入一个输入一个输入一个3 3 3 3行行行行4 4 4 4列的二维数组,然后输出列的二维数组,然后输出列的二维数组,然后输出列的二维数组,然后输出这个二维数组的元素值这个二维数组的元素值这个二维
16、数组的元素值这个二维数组的元素值 11.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系形参声明为列数已知的形参声明为列数已知的二维数组二维数组2023/1/1621/42【例例例例11.311.311.311.3】输入一个输入一个输入一个输入一个3 3 3 3行行行行4 4 4 4列的二维数组,然后输出列的二维数组,然后输出列的二维数组,然后输出列的二维数组,然后输出这个二维数组的元素值这个二维数组的元素值这个二维数组的元素值这个二维数组的元素值 11.2 11.2 指针和二维数组间的关系指针和二维数组间的关系指针和二维数组间的关系指针和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 PPT 课件 11 指针 数组
限制150内