C-C++语言程序设计(西电版)第4章-数组.ppt

C-C++语言程序设计(西电版)第4章-数组.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 6.小写字母转换成大写字母函数 strupr( ) 调用格式: 功能:将str字符串中的小写字母转换成大写字母。 输出结果: PASCAL 例如: char ch[10]=pascal; printf(%s,strupr(ch)); strupr(str) * 4.3.4 字符串数组 程序设计中经常要用到字符串数组。可用二维字符数组的形式建立字符串数组,行下标决定字符串的个数,列下标决定串的最大长度。 例如: char str_array[30][80]; 定义了一个字符串数组,它可存放30个字符串,串的最大长度为80个字符。 要访问单独的字符串,只需标明行下标就可以了。例如: gets(str_array[2]); 该语句在功能上等价于: gets(str_array[2][0]); * (1)指针与整数的加减运算 指针变量加上或减去一个整数n,是指针由当前所指向的位置向前或向后移动n个数据的位置。 通常这种运算用于指针指向一个数组中。 由于各种类型的数据的存储长度不同,因此在数组中加减运算使指针移动n个数据后的实际地址与数据类型有关。 对指针p进行±n操作后的实际地址值是: p±n*sizeof(数据类型)。 4.4 指针与数组 4.4.1 指针运算 1. 算术运算 * (2)自增自减运算 指针变量自增、自减运算也是地址运算,指针加1运算后指针指向下一个数据,指针减1运算后,指针指向上一个数据的起始位置。 (3)两个指针相减运算 两个指针相减的运算只能在同一种指针类型中进行,它们主要应用于对数组的操作,其结果是一个整数而不是指针。 例如:p1和p2是指向同一数组中不同或相同元素的指针(p1小于或等于p2),则p2-p1的结果为p1和p2之间间隔元素的数目n。 4.4 指针与数组 4.4.1 指针运算 * 指针的关系运算表示它们所指向的地址之间的关系。两个指针应指向同一个数组中的元素,否则运算结果无意义。指针间允许4种关系运算: 或 比较两指针所指向的地址的大、小关系。 ==或!= 判断两指针是否指向同一地址,即是否指向同一数据。 4.4 指针与数组 4.4.1 指针运算 2. 关系运算 * 例如,指针p1,p2指向数组中的第i、j元素,则下列表达式为真的含义为: (1)p1p2(或p1p2)。表示p1所指元素位于p2所指元素之前(或表示p1所指元素位于p2所指元素之后)。 (2)p1= =p2(或p1!=p2)。表示p1和p2指向同一个数组元素的地址(或表示p1和p2不指向同一个数组元素的地址)。用于判断指针p是否为NULL指针。 4.4 指针与数组 4.4.1 指针运算 2. 关系运算 * 指针不能与一般数值进行关系运算,但指针可以和零(NULL字符)之间进行等于或不等于的关系运算,如: p==0; p!=0; 或p==NULL; p!=NULL; 4.4 指针与数组 4.4.1 指针运算 2. 关系运算 * 数组名是个不占内存的地址常量,它代表整个数组的存储首地址。 a是数组的首地址(即a[0]的地址)。 a = a[0],a+1 = a[1], … ,a+9 = a[9] 数组元素的下标表示法: a[0],a[1], … ,a[i], … ,a[9] 数组元素的指针表示法: *(a+0),*(a+1), … ,*(a+i), … ,*(a+9) 4.4 指针与数组 4.4.2 指向一维数组的指针 1. 一维数组的地址 例如: int a[10],*p; * a[0] a[9] p 4.4 指针与数组 4.4.2 指向一维数组的指针 2. 一维数组指针的定义 由于数组元素也是一个内存变量,所以此类指针变量的定义和使用与指向变量的指针变量相同。例如: int a[10],*p; p = a;(或 p = a[0];) 也可以在指针定义的同时进行。例如: int a[10]; int *p=a; /*指针的初始化*/ a * 对于指向一维数组的指针p,它所指向的变量(即*p)的数据类型必须与这个一维数组的数组元素类型一致。例如,下面语句是错误的: float a[30]; int *p=a[0]; /*指向整型的指针不能指向数组元素类型为单精度的一维数组*/ 4.4 指针与数组 4.4.2 指向一维数组的指针 2. 一维数组指针

文档评论(0)

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

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

1亿VIP精品文档

相关文档