C语言程序设计经典教程 class8

上传人:zw****58 文档编号:51718225 上传时间:2018-08-16 格式:PPT 页数:24 大小:1.10MB
返回 下载 相关 举报
C语言程序设计经典教程 class8_第1页
第1页 / 共24页
C语言程序设计经典教程 class8_第2页
第2页 / 共24页
C语言程序设计经典教程 class8_第3页
第3页 / 共24页
C语言程序设计经典教程 class8_第4页
第4页 / 共24页
C语言程序设计经典教程 class8_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言程序设计经典教程 class8》由会员分享,可在线阅读,更多相关《C语言程序设计经典教程 class8(24页珍藏版)》请在金锄头文库上搜索。

1、1第八章 指针n主要内容p8.1 指针和指针变量p8.2 指针与数组p8.3 字符串的指针n重点p熟练掌握指针的定义和引用;掌握用指 针来处理数组;掌握用指针来处理字符 。2A直接BA间接预备知识n直接和间接的含义n内存p即内部存储器,是由内存单元组成pp特点特点 存储单元的最小单位为字节 存储单元是线性连续的3n内存p计算机的内存中的每一个字节都有一个编号每一内存单元具有唯一的内存地址系统为每一个已定义的变量分配一定存储空间 使变量名与内存的一个地址相对应通过地址就能够访问该地址所标识的存储单元 u程序处理过程 根据地址取出变量所对应的内存单元中存放的值 参与计算/操作 处理结果存入相应的变

2、量名所对应的内存单元0 1 2 3 2000地址45变量内容4n高级语言中的变量具有三个属性 p变量的名p变量的值p变量的地址n编程者使用c程序的一个变量p定义变量的数据类型 数据类型决定了一个变量在内存中所占用的存储空间的大小 变量在内存中总是占用几个连续的字节p定义变量名 语言的编译系统会根据变量的数据类型为该变量分配内存单元p确定变量的地址 变量的地址就是为变量分配的内存单元的起始编号p通过变量名对内存中变量对应的地址进行操作C语言如何处理?5指针的概念 int a,b,c; a=10; b=20;c=a+b; 100010001002100210041004内存内存a ab bc c1

3、01020203030正常解释实际情况100010001002100210041004内存内存变量名 内存单元的起始地址 长度内存地址与变量对照表 a ab bc c100010002 2100210022 2100410042 210 20101020203030在使用变量时总 要去查表,降低 了运行效率,也 颇感不便。 解决方案p p10001000这是变量a 的地址这是变量,存 放的是变量a 的地址 指针变量。8.1 指针和指针变量6指针变量的定义n一般形式为:类型符 *指针变量名; 如:int *p; int *q,*r;float a,*b;char *s1,s2;np、q、r、b、

4、s1均为指针变量;a、s2为 普通变量。n约定:p指针变量的图形表示,如:int *p;p普通变量的图形表示,如:int a;p pa a7指针变量的引用n两种基本的指针运算:1.p=printf(“%d,%d”,a,*p);n输出:10,1010p pa aint *p1,*p2;printf(“a=%d,b=%dn”,a,b); printf(“*p1=%d,*p2=%dn”,*p1,*p2); a=10; b=20;a=10; b=20; p1= p2=p1= p2=p1= p2=p1= p2= a=10; b=20;a=10; b=20;程序1程序2程序3程序4p1= p2=p1= p

5、2= *p1=10; *p2=20;*p1=10; *p2=20;*p1=10; *p2=20;*p1=10; *p2=20; p1= p2=p1= p2=a ab bp1p1p2p210102020scanf(“%d,%d”,p1= p2= if(astr2) B、if (strcmp(str1, str2) C、if (strcmp(str2, str1)0) D、if (strcmp(str1, str2)0)5. 若有语句:char s110, s210=“books”, 则能将字符串books赋给数组s1的正确语句是 A、s1=“books“; B、strcpy(s1, s2); C、s1=s2; D、strcpy(s2, s1);236. 下面程序中有错误的行是 1、 main( ) 2、 3、 int x3=1; 4、 int k; 5、 scanf(“%d“, 6、 for (k=1; kmain( ) char str120, str220;int i, k, num;gets(str1); gets(str2);i=strlen(str1); k=strlen(str2);num=? : ;printf(“%dn“, num);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号