C语言第八章地址和数组总结.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  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文档。上传文档
查看更多
C语言第八章地址和数组总结

第八章地址和数组总结  PAGE \* MERGEFORMAT 5 基本知识点: 指向字符串的指针变量 格式(1) char *变量名=字符串常量; 格式(2) char *变量名; ??????? 变量名=字符串常量; 例:char *pr=I love China; 例将字符串a复制到字符串b中。 main () {char a[]=I am a boy.; ?char b[20]; /* 定义数组b的大小不能小于数组a的长度 */ ?int i; ?for(i=0;*(a+i)!=\0;i++) /* 当字符数组a不结束时,执行循环体 */ ??? *(b+i)=*(a+i); /* 将字符数组a中的字符赋给字符数组b的对应元素 */ ?*(b+i)=\0; /* 在数组b的最后放入字符串结束的标志\0 */ ?printf(string a is: %s\n,a); ?printf(string b is: %s\n,b); } 二、字符串的表现形式 1. 用字符数组实现 如:? main() {static char str[]=I love China!; ? printf(%s\n,str); } 该程序运行结果为: I love China! ????在这个程序中,定义了一个字符数组str,将字符串常量中的各个字符(包括空字符)依次赋给str的各个元素.调用printf函数,以%s格式整体输出字符数组。 2. 用指向字符串的指针实现。如:? main() {char *p; ? p=I love China!; ? printf(%s\n,p); } 程序运行结果同上. 三、字符数组和指向字符指针的几个不同点: (1)功能不同:字符数组名是数组的首地址,是常量,不能进行自加自减运算,只能进行加减运算;字符指针是变量,可以进行自加自减运算。 (2)初始化意义不同:初始化时对字符数组整体赋值,是将一个字符串中的各个字符依次赋给字符数组的各个元素;初始化时对指针变量赋值是将一个字符串的首地址赋给指针变量。 (3)赋值方法不同:对字符数组的整体赋值(初始化除外)必须使用strcpy函数或用scanf()函数的%s格式;对字符指针除了使用这两个函数之外,还可以直接用赋值语句赋值。 (4)定义一个指向字符型数据的指针变量,系统给指针变量分配存储单元,但如果不给该指针变量赋地址值,则它不能指向某一确定的字符型数据;定义一个字符数组,则系统就会给数组分配存储单元,无论该字符数组是否被赋初值。 四、字符串指针作函数参数: 利用字符???组名或指向字符数组的指针变量都可以将一个字符串从一个函数传递到另外一个函数中,有下列几种方法: 1. 形参和实参均为数组; 2. 形参为数组,实参为指针变量:在主调函数中应当定义指向字符型数据的指针变量,并令其指向字符串(即将字符串的首地址赋给指针变量),用这样的指针变量作函数的实参; 3. 形参为指针变量,实参为数组; 4. 形参实参均为指针变量:在主调函数中应当定义指向字符型数据的指针变量并令其指向字符串(即将字符串的首地址赋给指针变量),用这样的指针变量作函数的实参.形参应为指向字符型数据的指针变量。 五、指向函数的指针变量的定义 1. 格式 类型标识符 (*指针变量名)(); 如: float (*p)(); 则表示定义p为指针变量,但只能指向单精度型的函数,而不能指向其它任何数据类型。 六、用指向函数的指针变量作函数的参数: 用指向函数的指针变量的调用函数时首先要将函数的入口地址赋给指针变量(即使指针变量指向函数),然后(*指针变量名)就可以取代函数名使用。 七、返回指针的函数的定义: 1. 格式: 类型标识符 *函数名(参数表);即在一般函数的定义中在函数名前加一个*。如::int *a(m,n) 表示a是一个函数,带二个形参m和n,均为整型变量,函数的返回值是一个指向整型数据的指针。 应用 1、已知:int *p, a;则语句”p=a;”中的运算符“”的含义是 。 [A]?位与运算 [B] 逻辑与运算? [C] 取指针内容 [D] 取变量地址 解析:本题考查的是指针变量的定义及运算符问题。指针就是地址,应将地址赋与指针变量。p=a;表明将变量a 的地址赋与指针p,因此,正确答案为[D]。 2、设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是( )。

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档