C语言程序设计实用教程课件作者李庆亮第5章节指针.pptVIP

  • 1
  • 0
  • 约2.31千字
  • 约 23页
  • 2017-11-12 发布于广东
  • 举报

C语言程序设计实用教程课件作者李庆亮第5章节指针.ppt

尚辅网 / C语言程序设计实用教程 第5章 指  针 第5章 指  针 5.1 概念 5.2 指针变量的定义与引用 5.3 指针变量的运算 5.4 指针与数组 5.5 指针与字符串 5.6 指针数组与指向指针的指针 5.7 习题 第5章 指  针 图5-1 地址与变量的对应关系 5.1 概念 5.1.1 变量的地址与变量的内容 5.1.2 直接访问与间接访问 图5-2 指向变量x的指针变量 5.1.3 指针与指针变量 5.2 指针变量的定义与引用 5.2.1 定义 5.2.2 引用 1. 指针变量的初始化 图5-3 指针变量p指向变量x 1) 变量x的类型必须和指针变量p的类型一致,例如以下定义是非法的。 5.2 指针变量的定义与引用 2) 不允许把一个指针变量初始化为一个常数,下面的对指针变量p初始化也是非法的。 2. 使用指针访问变量 图5-4 取ip为地址的存储区域中的内容 10 11 1) 如果已经执行了p = a;语句,则*p的含义是什么? 2) *a含义是什么? 5.2 指针变量的定义与引用 图5-5 *与运算之间的关系 5.3 指针变量的运算 5.3.1 赋值运算 1) 指针变量初始化赋值,前面已作介绍。 2) 把一个变量的地址赋予指向相同数据类型的指针变量。 3) 把一个指针变量的值赋予指向相同类型变量的另一个指针变量。 4) 把数组的首地址赋予指向数组的指针变量。 5) 把字符串的首地址赋予指向字符类型的指针变量。 6) 把函数的入口地址赋予指向函数的指针变量。 图5-6 交换指针变量值前后的情况 5.3 指针变量的运算 5.3.2 算术运算 (1) 指针变量与整数的加减运算 (2) 指针变量的自加自减运算 (3) 两个指针变量之间的相减运算 5.3.3 关系运算 5.4 指针与数组 5.4.1 指针与一维数组 1. 数组指针变量的定义 2. 通过指针引用数组元素 1) a[0] 一般的下标存取方法; 2) *a a指向数组的首地址,*a即为取该地址处的内容; 3) *p 因有p = a,*p即为取该地址处的内容。 1) a[i] 一般的下标存取方法; 2) *(a+i) a + i就是a[i]的地址,取该内存单元的值; 3) *(p+i) p + i也是a[i]的地址,取该内存单元的值。 图5-7 指针与数组的关系 5.4 指针与数组 (1) 用下标法存取数组元素 (2) 通过数组名输出存取数组元素 (3) 用指针变量存取数组中的元素 1) p++ p指向下一元素,即a[1]。 2) *p++  等价于先得到*p,然后p = p + 1。 3) *(++p);*(p++)  等价于使p先加1,再取*p。 4) (*p)++ 等价于先得到*p,然后将其值加1(p所指向元素的值加1),而不是指针值加1。 5.4.2 指针与二维数组 1. 二维数组的地址 图5-8 二维数组 5.4 指针与数组 2. 指向二维数组元素的指针变量 0  1  2  3 10 11 12 13 20 21 22 23 图5-9 二维数组行存储示意图 3. 指向二维数组的行指针变量 5.4 指针与数组 图5-10 指向二维数组的行指针示意图 5.5 指针与字符串 1. 指向字符串的指针变量 图5-11 指向字符串的指针变量说明 图5-12 字符串指针变量加运算说明 2. 使用字符串指针变量与字符数组的区别 1) 字符串指针变量本身是一个变量,用于存放字符串的首地址。 2) 对字符串指针方式: 5.6 指针数组与指向指针的指针 5.6.1 指针数组 1  2  3  4 5  6  7  8 图5-13 指针数组与一维数组之间的关系 1  2  3 4  5  6 7  8  9 5.6 指针数组与指向指针的指针 图5-14 指针数组与二维数组之间的关系 5.6 指针数组与指向指针的指针 图5-15 用指针数组表示一组字符串 5.6.2 指向指针的指针 5.6 指针数组与指向指针的指针 图5-16 指向指针的指针变量示意图 1  3  5  7  9 5.6 指针数组与指向指针的指针 图5-17 指向指针数组的指针 1  2  3 4  5  6 5.6 指针数组与指向指针的指针 7  8  9 5.7 习题 一、 选择题 1. 下列程序段的输出结果是(  )。 2. 下列程序的输出结果是(  )。 3. 下面程序的输出结果是(  )。 4. 以下程序的输出结果是(  )。 5. 设有int a[ ]={10,11,12},*p=a[0];则执行完*p++;*p+=1;后a[0],a[1], 的值依次是(  )。 6. 设有说明int s[2]={0,1},*p=s; 则下

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档