C语言程序的设计03.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序的设计03

例:输入10个整数存入一维数组,从中查找某个整数(该数从 键盘上读取),查到则输出其是第几个数,查不到则输出“Not Find!”。要求用指针法处理。 程序清单如下: main() { int a[10],*p=a,x,n,flag=0; for (;pa+10;p++) scanf(“%d”,p); scanf(“%d”,x); for (n=1,p=a;pa+10;p++,n++) if (*p==x) { flag=1;break;} if (!flag) printf(“Not Find!\n”); else printf(“%d\n”,n); } 3、关于使用“指针法”处理一维数组元素的下标越界问题 C语言对用“指针法”引用数组元素时,对下标是否越界也 不作检查,即允许下标越界。 例如,定义了整型数组a[10],并使同类型的指针变量p指向了 数组a的首地址。则下列对a数组的元素引用都是允许的: *(p-1) 代表数组元素a[0]前面2个单元中存放的数据 (看成整数) *(p+10) 代表数组元素a[0]前面2个单元中存放的数据 (看成整数) 虽然C语言允许处理数组元素时下标可以越界,但在程序 中要尽量避免。当出现下标越界的情况,如果你使用的是数组 元素值,显然这个值不知为何值;如果你是将某个值存入该数 组元素,结果将会破坏对应内存单元中原来的值,使得后面程 序运行时,结果不正确,甚至出现预料不到的问题,而这样的 错误很难查找。 (三)、指向字符串的指针变量的使用 如果字符串是存放在某个字符数组中,可以用赋初值或 赋值方式将指针变量指向该字符数组,以后可以用指针变量 来处理字符数组中存放的字符串,也可以使用指针变量来处 理其中的单个字符,处理方法类似于一维数组。 在C语言中允许直接使用字符串常量,并不一定要求字符 串存放在字符数组中。这样的字符串常量可以用字符型指针变 量指向它,以后也可以用字符型指针变量来处理这个字符串或 字符串中的单个字符。 1、如何将指针变量指向字符串常量 第一种方法是给指针变量赋初值的方式,格式为“ * 指针变量=字符串常量”; 假定要求字符型指针变量p指向字符串常量“abcd”;可以采 用下列两种方式: 第二种方法是先定义一个字符型指针变量,然后通过赋值 方式,其格式为“指针变量=字符串常量”。 方法一 char *p=“abcd”; 方法二 char *p; p=“abcd”; 可以用赋值方式使指针变量指向字符串常量,但是不允 许将字符串常量赋值给字符型数组。例如,下列的程序段是 错误的: char a[10]; a=“abcd”; C语言允许在同一个程序中,使同一个字符型指针变量先 后指向不同的字符串常量,例如下列的程序段是正确的: char *pa; pa=; pa=“abcd”; ● ● ● 2、指向字符串常量的指针变量的使用 当一个字符型指针变量已指向某个字符串常量,就可以 利用指针变量来处理这个字符串。处理的方式主要有两种: (1)处理整个字符串。 输出字符串 printf(“%s”,指针变量); 输入新的字符串代替原字符串 scanf(“%s”,指针变量); (2)处理字符串中的单个字符。 第i个字符的表示方法 * (指针变量+i) 3、指向存放字符串的字符数组的指针变量的使用 当一个字符串已经存放在一个字符型数组中,并且用指 针变量指向这个字符数组,处理字符串中的单个字符就是处 理一维数组的元素,处理方法和前面介绍的处理一维数组元 素完全相同,唯一需要注意的是,数组元素的类型是字符型。 例:用字符型指针p指向字符串常量,然后反复从 键盘上输入字符串,若大于给定的字符串常量,则输出“More larger!”;若小于给定的字符串常量,则输出“More Smaller!”。 直到输入的字符串等于这个字符串常量时结束。 程序清单如下: main() { char *p=,a[10

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档