c语言程序设计第2版指针程序设计.pptx
文本预览下载声明
第7章 指针程序设计7.1 指针概述 7.2 指针变量的定义和使用7.3 指针与数组 7.4 指针作为函数的参数7.5 指针函数7.6 指针应用程序举例C语言程序设计-理论方法与实践(第2版)7.1 指针概述指针与指针变量变量的直接访问和间接访问C语言程序设计-理论方法与实践(第2版)7.1 指针概述指针与指针变量某个变量所占用的内存空间的开始地址称为该变量的地址,C语言将这一地址称为指针,存储这一地址的变量称为指针变量。通过指针变量可以实现对其他变量的访问。指针变量可以指向任何一种数据类型,如可以指向基本类型的变量,也可以指向数组等。C语言程序设计-理论方法与实践(第2版)7.1 指针概述变量直接访问是指通过变量名直接使用变量数据。例如:int a=10,b=20,c;c=a+b;printf(%d\n,c);变量间接访问是指通过指针变量去访问其他变量数据。C语言程序设计-理论方法与实践(第2版)7.2 指针变量的定义和使用7.2.1 指针变量程序示例 7.2.2 定义指针变量7.2.3 使用指针变量 C语言程序设计-理论方法与实践(第2版)7.2.1 指针变量程序示例例7-1 使用指针变量输出数据程序。 #includestdio.hint main(void){ int a=2008; int *p; p=a; printf(%d\n, *p); return 0;} 定义指针变量 p指向a 用*p表示变量a的值 C语言程序设计-理论方法与实践(第2版)7.2.2 定义指针变量一般格式 数据类型 *指针变量名1,*指针变量名2,┅;例如:int *p1,*p2; float *q;指针变量允许和其他变量同时定义: char m,n,*p,*q;注意“数据类型”是指针变量要指向的变量的数据类型。C语言程序设计-理论方法与实践(第2版)mm p pm196q7.2.3 使用指针变量1.指针变量的初始化一般格式 数据类型 *指针变量名1=地址1,*指针变量名2=地址2,┅; 例如:int m; int *p=m;2.指针变量的赋值一般格式 指针变量=变量地址; 例如:int m=196,*p,*q; p=m; q=p;C语言程序设计-理论方法与实践(第2版)7.2.3 使用指针变量3.使用指针变量输入数据当指针变量有了确切的指向目标后,即可使用该指针变量为指向的目标输入数据。 int score,*p; p=score; scanf(%d,p);scanf语句的功能与下列语句等价: scanf(%d,score); C语言程序设计-理论方法与实践(第2版)7.2.3 使用指针变量4.指向运算“*”与目标访问对于指针变量p,访问其指向的变量时,使用“*”运算符: *p例如,对上面的程序段,输出变量score的数据: printf(%d,*p);其中,*p表示p指向的目标score 。C语言程序设计-理论方法与实践(第2版)7.2.2使用指针变量例7-2定义指针变量p1、p2,并任意输入两个整数a、b,使得p1指向其中的较大值,p2指向其中的较小值 。#includestdio.hint main(){ int *p1,*p2,*p,a,b; printf(Input: ); scanf(%d,%d,a,b); p1=a; p2=b; if(ab){p=p1;p1=p2;p2=p;} printf(Output: ); printf(%d,%d\n,*p1,*p2); return 0;}C语言程序设计-理论方法与实践(第2版)7.3 指针与数组7.3.1 指针与一维数组 7.3.2 指针与二维数组 7.3.3 指针与字符串 7.3.4 指针数组 C语言程序设计-理论方法与实践(第2版)7.3.1指针与一维数组 要解决的问题用指针实现一维数组的数据处理 主要内容如何把一个指针和一维数组关联起来,即怎样使指针指向一维数组如何使用指针访问一维数组的元素C语言程序设计-理论方法与实践(第2版)7.3.1用指针访问一维数组 1.指针与一维数组的关系 对于长度是N的一维数组a,当使用指针p指向其首元素后,即可通过指针p访问数组的各个元素。简单类型数组aa[0]用*p表示a[1]用*(p+1)表示a[i]用*(p+i)表示 指向一位数组的指针变量C语言程序设计-理论方法与实践(第2版)7.3.1用指针访问一维数组 2.定义和使用指向一维数组的指针变量 若有定义:int a[N],*p; /* N为符号常量 */ 则以下任何语句都能使指针变量p指向一维数组ap=a;p=a[0];当指针变量p指向a数组之后,就可以使用p访问a数组的元素。例如,可以使用下面的语句输出元素a[0]和a[1]的值。printf(“%d,%d”,*p,*
显示全部