一、数组的指针1.数组与地址2.数组元素的访问二、字符串指.ppt

一、数组的指针1.数组与地址2.数组元素的访问二、字符串指.ppt

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

C语言规定: 数组名代表数组(元素)的首地址,即第一个元素的地址。 若有:int a[10], *p=a; 则: a 与 &a[0] 是等价的 指针变量 p 为数组的指针 数组的指针:数组的起始地址,即数组元素的首地址。 数组元素的指针:数组元素的地址。 1.数组与地址 对数组的首地址加上偏移量x就可以得到其它元素的地址。 例: &a[1] 表示数组元素a[1]的地址 等价于 a+1、 p+1 &a[x] 表示数组元素a[x]的地址 等价于 a+x、 p+x 2.数组元素的访问 下标法: 用 a[i] 的形式存取数组元素。 地址法: 用 *(a+i)的形式存取数组元素。 指针法: 用指针变量p指向数组的首地址,然后通过移动指针存取数组元素。 如 p=a, p+i。 例a 用下标法存取数组元素 main( ) { int a[10], i; for ( i=0; i10; i++ ) scanf(%d, a[i]); for ( i=0; i10; i++ ) printf(%d, a[i]); printf(\n); } 例b 用地址法存取数组元素 main( ) { int a[10], i; for ( i=0; i10; i++ ) scanf(%d, a+i ); for ( i=0; i10; i++ ) printf(%d, *(a+i)); printf(\n); } 数组元素的访问举例 例c 用指针法存取数组元素。(即通过指针指向数组的首地址,然后通过移动指针存取数组元素。) 例c 说明 数组元素的访问小结: 注意: 数组名是一个常量,不允许重新赋值。 指针变量是一个变量,可以重新赋值。 p+i和a+i均表示数组元素a[i]的地址,均指向a[i]。 *(p+i)和*(a+i)均表示p+i和a+i所指对象的内容,即a[i]。 *p++:等价于*(p++)。其作用:先得到*p,再使p=p+1。 (*p)++:表示将p所指向的变量(元素)的值加1。即等价于 a[i]++ 。 例: int a[5]={0, 2, 4, 6, 8}, *p; p=a+2; (*p)++; printf(%d\n,*p ); 程序段输出为:5 例 main( ) { int a[5]={0,2,4,6,8},*p,x; p=a; (*p)++; p=a+1; ++(*p); p=a+2; (*p)--; p=a+3; --(*p); for (x=0;x=4;x++) printf(%d , a[x] ); printf(\n); } 指向数组元素的指针也可以表示成数组的形式,即允许指针变量带下标,如*(p+i)可以表示成p[i]。 但需注意,如果p不指向a[0],则p[i]和a[i]是不一样的。 如 p=a+3; 由于p指向a[3],所以p[3]就相当于a[6]而不是a[3]。 这种方式容易出错,一般不提倡使用。 字符串的处理是用字符型数组来实现的。 用char型数组处理的字符串都可以用char型指针来处理。通常把char型指针称为字符串指针或字符指针。 在程序中定义一个字符指针变量,并将字符串的首地址赋给它,然后通过字符指针变量来访问字符串。 例如: char str[ ]=C programming; char *p; p=str; 或: char *str=C programming; 例: /* 用字符数组实现字符串操作 */ main( ) { char str[]=Welcome to study C !; int i; printf(%s\n,str); for (i=0;i=7;i++) printf(%c,str[i]); printf(\n); } 例 /* 用字符指针实现字符串操作 */ main() { char *str=Welcome to study C !; int i; printf(%s\n,str); for(i=0;i=7;i++) pri

文档评论(0)

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

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

1亿VIP精品文档

相关文档