第10章 指针,c语言.pptVIP

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 指 针 掌握指针与指针变量的概念; 掌握数组的指针和指针数组的使用; 掌握字符串指针和指向字符串的指针变量的使用; 掌握指针函数和函数指针的使用; 了解指向指针的指针的概念及其使用。 预 备 知 识 §10.1 指针及其相关概念 §10.2 变量的指针和指向变量的指针变量 §10.3 数组的指针和指向数组的指针变量 §10.4 字符串指针和指向字符串的指针变量 §10.5 指针函数和函数的指针 §10.7 指针数组和指向指针的指针 §10.8 指针的数据类型小结 3.通过一个行指针变量引用二维数组的元素 定义一个由m个元素组成的一维数组的指针变量的一般形式: 类型标识符 (*指针变量名)[m]; 例如:假若有语句 int a[2][3], (*p)[3]; p=a; 注意:*p两侧的圆括号不可缺少。 则:⑴ p是一个指向由3个整型元素组成的一 维数 组的指针变量。 ⑵ p指向a数组,p+1指向数组a的下一行首地 址,a和p的基类型相同,则a数组中任意元 素a[i][j]还可以如下表示: *(p[i]+j) 、*(*(p+i)+j) 、(*(p+i))[j] 、p[i][j] 例:使用行指针变量访问数组元素。 main() { float fa[5][10], (*pf)[10]=fa; int i,j; for(i=0; i5; i++) for(j=0; j10; j++) *(*(pf+i)+j)=i*j; for(i=0;i5;i++) for(puts(),j=0;j10;j++) printf( %.0f,fa[i][j]); } 字符串指针:字符串的首地址。 字符指针变量:指向字符串的指针变量。 例如:char *strp=“Hello!”; 定义了一个指向字符串的指针变量,并将字符串的首地址赋值给strp指针变量,即:使指针变量strp指向字符串首地址。 字符指针变量定义的一般形式: char *指针变量名; 字符指针变量定义时可以赋初值。 C程序访问字符串有以下两种方法: 1. 用字符数组存放一个字符串 例如:char s []=I am a student.; 字符串输出语句可写成: ⑴ printf(“%s\n”,s); ⑵ for(i=0; s[i]; i++)printf(“%c”, s[i]); ⑶ for(i=0; s[i]; i++)printf(“%c”,*(s+i)); 也可用s[i]!=‘\0’ 2.用字符指针指向一个字符串 例如:char *ps=I am a student.; 字符串输出语句可写成: ⑴ printf(“%s\n”,s); ⑵ for(; *ps; ps++)printf(“%c”, *ps); 说明: ⑴字符数组由若干个元素组成,每个元素中放一个字符。而字符指针变量中存放的是地址(字符串的首地址),决不是将字符串放到字符指针变量中; ⑵字符数组和字符指针变量都可以在定义时赋初值,但以下方法对字符数组非法,对字符指针变量合法: char s[10]; s=“hello!”; ╳ char *ps; ps=“hello!”; √ ⑶字符指针变量必须先赋值后使用,否则对系统构成危险。因此,不可以如下编程: char *ps; scanf(“%s”, ps); ╳ 而应写成: char *ps,s[10]; ps=s; scanf(“%s”, ps); √ ⑷字符数组名是指针常量,只能表示一个确定的字符串,不能改变。而字符指针变量的值是可以改变的,它可以代表不同的字符串。 ⑸若定义了一个指针变量,并使它指向一个字符串,就可以用下标形式引用指针变量所指字符串中的字符。 如:char *a=“I love China!”;printf(“%c”,a[5]); ⑺若把字符指针所指对象当作数组使用,应注意对象的长度。 如:char str1[10],*ps=str1; ps[10]=‘\0’; ╳ ⑹用指针变量指向一个格式字符串,可以用它代替printf函数的格式字符串。 如:int a; char *format; format=“a=%d\n”; 则:printf(format,a);相当于printf(“a=%

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档