- 1、本文档共73页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 规定: 字符串常量按字符数组处理,即在内存中开辟一个字符数组存放 串常量(包括‘\0’,且数组大小刚好存放数组全部元素)。 上面的定义并初始化,就是定义一个指针变量(开辟2 bytes空间),并把 串常量“Hello!”的第一个字符的地址赋给str指针。 注意:str——‘H’即字符串指针指向字符型数据,指向串的第一个字符, 对字符串指针的引用*str实质上是引用其所指向的字符,如开始时, *str==‘H’。而不是整个字符串“Hello!” 2。应用说明: ①指针类型:字符型指针 printf(“%c”,*str); printf(“%c”,*(str+1)); ②所指向字符串的输出: puts(str); printf(“%s”,str); printf(“%c”,str);// ?输出怪字符 puts(*str);// ? ③字符串指针与字符数组区别: 1)字符串指针是变量(2字节),用来存放一个地址值.char *str;str =“ABC”; 字符数组是用来具体存放字符串元素的,开辟size *sizeof(type)字节 存储单元,Char str[20]={“ABC”}; or char str[20]={‘A’,’B’,’C’,’\0’}; 2)赋值方式: static char str[]={“Hello!”};//初始化形式定义 char *str =“Hello!”;//初始化形式定义 char str[200] ; str=“Hello!”;// ? gets(str);// ? char *str; str =“Hello!”;// ? 3)数组定义,数组名是常量,具体的固定地址值,char str[200];gets(str);? 字符串指针定义,该指针变量有2字节内存空间,但值为残值,gets(s); ? 由于数组名是固定地址,故不能作左值。 static char str[]=“ABCDEF”; for(i=0;i6;i++) printf(“%s”,str++);// ? 字符指针即使定义初始化,使用时也要注意: char *s=“HUST”; gets(s);//!危险,若输入新串超过5个字符则会覆盖串文字量“HUST”后面存储空间的内容。 ④字符串指针值可变,且可以用下标引用 char *str =“Hello!”;str ++; for(i=0;str[i]!=‘\0’;i++) printf(“%c”,str[i]); ⑤给字符串指针变量指向的内存空间赋值前,先给字符串指针变量赋值。 char *s; s =“abc”; or s=(char *)malloc(20); gets(s);//要保证s所指向的空间足够大。 二、字符串指针用作函数参数 【例】求字符串长度 int strlen(char *str) { int i=0; while(*str++)i++; return i; } int strlen(char *str) { char *p; p=str; while(*p)p++; return (p-str); } ① 函数体中的应用形式 可以采用下标形式或指针形式,str[i] or *str ② 函数调用: 指针变量没有赋有意义的初值时,不能对*p 赋值,尤其在主调函数中。 char *a, *b =“abcd”; strcpy(a,b);//!危险 函数调用时,实参可以用指向字符串的指针,也可以用储存字符串的数组名。 注意:用字符型指针处理字符串只是一种手段,必须要与数组(具体存放字 符串的存储空间)结合,或者与动态内存分配库函数的使用相结合。 【例】 #include string.h void main() { char *str1,*str2,ch; str1 =“abc”;str2 =“asdfgh8”; ch=‘8’; strcpy(str1,str2); printf(“%s\t%s\t%c\n”,str1,str 2,ch); } 输出:asdfgh8 gh8 8CR 由此看见,对字符串指针指向的存储空间赋值时,必须保证有足够空间。 7.6指针与指针数组 一、指针数组 1。定义格式: 类型 *数组名[常量表达式]; 例:int *p[4],a0[10],a1[10],a2[10],a3[10]; p[0] =a0;p[1] =a1;...... 2.使用说明 ?元素为相应的指针类型 【例】 void print(char *[],int); void main() { stat
您可能关注的文档
- 智商的形成.doc
- 班会明天的我1.ppt
- 第00章简介.ppt
- 直线和圆的位置关系练习.doc
- 矛盾的观点二轮复习课件.ppt
- 第2节第2课时化学反应的限度第二课时.doc
- 第9章初级会计.ppt
- 第七章计划与目标.ppt
- 素雅PPT.ppt
- 管理学第8卷.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 小学语文关联词造句.doc
- 《840呼吸机基本模式及参数调节》.pptx VIP
- 地铁车站施工组织设计.pdf VIP
- IB经济学 知识点总结手册 IB Economics in a Nutshell (Exam Study Guide).pdf VIP
- 2023年糖尿病肾脏疾病临床诊疗中国指南.docx
- 城市轨道用槽型钢轨闪光焊接质量检验标准.pdf
- 六年级上册英语教案-Unit4 January is the first monthLesson 19-20|人教(精通).docx
- 机电一体化专业大学生职业生涯规划ppt.pptx
- (人教2024版)英语七年级上册 Unit 2单元知识总结(新教材).docx
- 西门子840D840DE编程说明书.doc
文档评论(0)