(CC++语言程序设计)第4章 数组.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 4.4 指针与数组 4.4.4 指针与字符串 利用一个字符串指针访问字符串通常可以采用以下两种方式。 (1)将一个字符数组的起始地址赋值给指针变量。例如: char *p; char s[ ]=abc; p=s; 字符串“abc”存储在字符数组s中,数组s的起始地址赋值给指针变量p,则指针p就指向字符串“abc”。 * 4.4 指针与数组 4.4.4 指针与字符串 (2)将一个字符串常量赋值给指针变量。例如: char *p; p=abc; 上述语句运行结果并非使指针变量p的内容变成了字符串“abc”。字符串常量“abc”赋值给指针p的结果是将存储字符串常量的起始地址赋值给指针p。这样指针p就指向了字符串常量“abc”。 * 4.4 指针与数组 4.4.4 指针与字符串 字符数组和字符指针变量都可实现对字符串的存储和操作,但是两者是有区别的。 (1)字符数组占用若干个字节,每一个字节存放一个字符。而字符指针变量本身是一个变量,用于存放字符串的首地址,占用4个字节。字符串本身存放在以该首地址为首的一块连续的内存空间中,并以\0作为串的结束。 * 4.4 指针与数组 4.4.4 指针与字符串 (2)赋值方式不同。 字符串赋给字符数组只能在初始化时进行,如: char string[15]={C Language}; 而不能出现下面的情况: char string[15] ; string={C Language}; 对字符指针变量则无此限制,如: char *ps=C Language; 等价于: char *ps; ps=C Language; * 【例4.15】用字符指针处理字符串。 #includestdio.h void main() { char *str=I love China!,*str1; int i; str1=str; printf(%s\n,str); for( ;*str!=\0;) printf(%c\n,*str++); printf(\n); str1+=7; printf(%s\n,str1); } 4.4 指针与数组 4.4.4 指针与字符串 程序运行结果为: I love China! I love China! China! * 指针数组定义的一般形式: 由于“[ ]”比“*”的优先级高,所以数组名先与“[整型常量表达式]”结合,形成数组的定义形式。 “*”表示数组中每个元素是指针类型 “数据类型”说明指针的目标变量的数据类型。 例如: int *ip[10]; char *cp[5]; 4.4 指针与数组 4.4.5 指针数组 指针数组就是数组中的每个元素均为指针类型 数据类型 *数组名[整型常量表达式]; * 4.4 指针与数组 4.4.5 指针数组 cp C 数 组 cp[0] F o r t r a n \0 cp[1] C O B O L \0 cp[2] B A S I C \0 cp[3] P a s c a l \0 例如: char c[4][8]={Fortran,COBOL,BASIC,Pascal}; char *cp[4]={c[0],c[1],c[2],c[3]}; char *str[5]={int,long,char,float,double}; int a[2][3]; int *p[2]={a[0],a[1]}; str[0] i n t \0 str[1] l o n g \0 str[2] c h a r \0 str[3] f l o a t \0 str[4] d o u b l e \0 * 【例】用0~6分别代表星期日至星期六,当输入其中任意 一个数字时,输出相应英文单词。 main( ) { char *weekname[7]={Sunday,Monday,Tuesday, Wednesday,Thursday,Friday,Saturday}; int week; printf(Enter week No.: ); scanf(%d,week); if (week=0 week7) printf(week No.%d —— %s\n,week,weekna

文档评论(0)

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

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

1亿VIP精品文档

相关文档