正在加载图片...
指针程序设计(二) 主要1.二维数组与指针 主要讲 内容2.字符串与指针 字符指针 3.字符指针与字符数组的区别 重点1.指向字符串的指针变量的引用 2.字符指针与字符数组的区别 难点1.指向字符串的指针变量 2.字符指针与字符数组的不同用法 问题前面学习了指针的概念、指针在一维数组中的应用方法,那么如何 引入|使用指针变量解决字符串的操作问题? 使用指针表示二维数组 先复习 二维数组元素的地址 指针在 inta[3[4={{1,3,5,7},{9,11,13,15},{17,19,2123}}; 一维数组 二维数组a[34可看成由3个一维数组a0、al、a2]组成,中的应用 每个一维数组由4个元素组成。如下图所示。 +1a+2a0y+3 a+1 a+2 a代表二维数组首元素的地址,a]、a[、a[2]是一维数组名 而C语言规定数组名代表数组首元素的地址,即a0等于&a[o[0] []等于&a1[0]、a[2等于&a[2J0]。 2、使用指针表示二位数组元素 进一步分析:a0等于&a0],a[O+1等于&a[oJ1],a[O+2 等于&a[0][2],a[0+3等于&a[OJ[3 因为a0]和*(a+0)等价,a]和*(a+1)等价,a和*(ati) 等价,因此: a[0+1等价*a+0)+1等价&a[OJ[1 a[1]+2等价*a+1)+2等价&a[l12 注意:不要将*a+1)+2错写成*(a+1+2)相当a[3] 进一步分析:因为&a[O[等价a[0]+1等价*(a+0)+1,那么 (*(a+0)+1)或*(*a+1)等价a[o]的值。*(a]+或气*a+i)+j)等价 a[i[]的值 用指针变量引用二维数组元素 用指向数组元素的指针变量引用二维数组元素,此种方法 是将二维数组当作一维数组来处理 例1:用指针变量输出数组元素的值。指针程序设计(二) 内容 说明 主要 内容 1.二维数组与指针 2.字符串与指针 3.字符指针与字符数组的区别 主要讲 字符指针 先复习 指针在 一维数组 中的应用 重点 1. 指向字符串的指针变量的引用 2. 字符指针与字符数组的区别 难点 1. 指向字符串的指针变量 2. 字符指针与字符数组的不同用法 问题 引入 前面学习了指针的概念、指针在一维数组中的应用方法,那么如何 使用指针变量解决字符串的操作问题? 使用指针表示二维数组 二维数组元素的地址 int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 二维数组 a[3][4]可看成由 3 个一维数组 a[0]、a[1]、a[2]组成, 每个一维数组由 4 个元素组成。如下图所示。 a 代表二维数组首元素的地址,a[0]、a[1]、a[2]是一维数组名, 而 C 语言规定数组名代表数组首元素的地址,即 a[0]等于&a[0][0]、 a[1]等于&a[1][0]、a[2]等于&a[2][0]。 2、使用指针表示二位数组元素 进一步分析:a[0]等于&a[0][0],a[0]+1 等于&a[0][1],a[0]+2 等于&a[0][2],a[0]+3 等于&a[0][3]。 因为 a[0]和*(a+0)等价,a[1]和*(a+1)等价,a[i]和*(a+i) 等价,因此: a[0]+1 等价 *(a+0)+1 等价 &a[0][1] a[1]+2 等价 *(a+1)+2 等价 &a[1][2] 注意:不要将*(a+1)+2 错写成*(a+1+2)相当 a[3]。 进一步分析:因为&a[0][1]等价 a[0]+1 等价 *(a+0)+1,那么 *(*(a+0)+1)或*(*a+1)等价 a[0][1]的值。*(a[i]+j)或*(*a+i)+j)等价 a[i][j]的值 二、用指针变量引用二维数组元素 1.用指向数组元素的指针变量引用二维数组元素,此种方法 是将二维数组当作一维数组来处理。 例 1:用指针变量输出数组元素的值。 23 1 3 5 7 9 11 13 15 17 19 21 a[0] a[1] a[2] a a+1 a+2 a[0] a[0]+1a[0]+2 a[0]+3 23
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有