C语言程序设计8n.pptVIP

  • 9
  • 0
  • 约6.05千字
  • 约 39页
  • 2018-03-28 发布于河南
  • 举报
C语言程序设计8n

C语言程序设计 主讲教师:贾明兴 牛大鹏 第8章 指针 8.1 指针的概念 8.2 指针变量的定义和引用 8.3 指针与一维数组 8.4 指针与字符串 8.5 指针与多维数组 8.6 指针数组与指向指针的指针 8.7 返回指针值的函数 8.8 指向函数的指针 8.9 动态内存分配 8.1 指针的概念 (3)、注意: 对指针变量初始化 int a, *s=a; 只能用同类型变量的地址进行赋值! 如定义:int *s; float f; 则 s=f;是非法的。 用一个变量的地址初始化指针变量,变量先定义 int *s=a ,a; 错误 整型数据初始化指针变量要慎重 int *s=0x0001; 可能会把系统的资源占用而导致严重错误 指针初始化0 int *s=0; 赋值为0的指针不指向任何对象 *东北大学信息科学与工程学院自动化所 * 指针地位: 指针是C语言的一个重要概念,也是C语言的一个重要特色。深刻理解和正确使用指针是学习本章的基本要求。 指针优点: 直接访问内存 实现函数间的数据传递 一、地址 在计算机中,把内存区划分为一个一个的存储单元,每个单元为一个字节(8位),它们都有一个编号,这个编号就是内存地址。如下图所示: 注意:1、程序中定义的每个数据在编译后都占有各自的内存区。 2、数据所占有的存储单元个数是由其类型决定的。 3、首地址:第1个单元的地址 4、表示地址的数与整数的区别 8.1 指针的概念 二、举例 如有定义:char c=‘A’; int a=3; 则所占内存情况如下: 注意:c和a的地址可能相邻,也可能不相邻,是由系统分配的,我们不用关心。 8.1 指针的概念 三、指针与指针变量 1、指针:简单地说,指针就是地址。二者是同一个概念的两种说法。只不过指针更形象一些,就像一个针一样,可以指向某个地方。 2、指针变量:首先指针变量就是一个变量,和我们以前所讲的其它变量没有本质区别。不同之处在于这种变量中所存放的内容是地址。 什么是指针变量呢?我们回忆一下什么叫整型变量 8.1 指针的概念 四、直接访问和间接访问 有两个上锁且放着物品的盒子A、B, 如果你有A盒子的钥匙,则可以直接打开A盒子将物品取出; 如果你有B盒子的钥匙,而A盒子的钥匙在B盒子中,要想取出A盒子中的物品,则必须先打开B盒子,取出A盒子的钥匙,再打开A盒子将物品取出。 上面两种情况就是直接访问和间接访问的概念。 8.1 指针的概念 1、直接访问 通过变量本身对变量进行存取的方式,称为直接访问。 如定义:int x; 则x=10; x+=5; 等等 这种访问方式只需要变量本身就得到了该变量的全部信息,不需要其它内容,是直接的。 8.1 指针的概念 2、间接访问 通过指针变量实现对变量的访问方式,称为间接访问。 首先要定义一个指针变量,然后将一个同类型变量的地址赋给该指针变量(这时我们称指针变量指向该变量),这样就可以进行间接访问了。 间接访问的过程是:由指针变量得到变量的地址,根据该地址找到变量的存储区,再对该存储区的内容进行存取,从而实现了对变量的间接访问。 8.1 指针的概念 一、指针变量的定义和赋值 1、格式:类型名 *指针变量名; 2、举例 int *p1; char *s1, *s2; float *a1, *a2, f; 3、说明 a. 类型名:指针变量所指向的变量类型。 b. * 是定义指针变量的标志,不可丢掉。 c. 指针变量定义后,其值是不确定的。 p1 是指针变量,指向整型,称整型指针变量 s1、s2 是指针变量,指向字符型,称字符型指针变量 a1、a2 是指针变量,指向浮点型,称浮点型指针变量 p1、s1、s2、a1、a2 值是地址,值得类型为整型或长整型 8.2 指针变量的定义和引用 4、赋值:可以进行初始化,也可以使用赋值语句 (1)、初始化: int a, *s=a; (2)、赋值语句 int a, *s; s=a; 8.2 指针变量的定义和引用 在分析有关指针的程序时,画图是很好的方法: 若有: int a, *s; 则 若有: int

文档评论(0)

1亿VIP精品文档

相关文档