《C语言回顾指针》PPT课件

《C语言回顾指针》PPT课件

ID:41109936

大小:420.51 KB

页数:24页

时间:2019-08-16

《C语言回顾指针》PPT课件_第1页
《C语言回顾指针》PPT课件_第2页
《C语言回顾指针》PPT课件_第3页
《C语言回顾指针》PPT课件_第4页
《C语言回顾指针》PPT课件_第5页
资源描述:

《《C语言回顾指针》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、字符指针讲授人:周俏丽变量指针数组Intc[10];Inta;Int*P;a=6;P=c;C[0]=6;63010a内存状态3000P内存状态c[0]c[1]c[2]c[9]….2000内存状态62000C[1]=7;7数组取值操作:数组的首地址赋予指向数组的指针变量。例如:inta[5],*pa;pa=a;(数组名表示数组的首地址,故可赋予指向数组的指针变量pa)也可写为:pa=&a[0];/*数组第一个元素的地址也是整个数组的首地址,也可赋予pa*/⑤把字符串的首地址赋予指向字符类型的指针变量。例如:char*pc;pc="

2、clanguage";这里应说明的是并不是把整个字符串装入指针变量,而是把存放该字符串的字符数组的首地址装入指针变量。⑥做为函数的实参和形参。main(){char*pc,*pb;pc="clanguage";strcpy(pc,pb);}Voidstrcpy(char*from,char*to){……}字符指针变量和字符数组的区别字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串的首地址),决不是将字符串放到字符指针变量中.charc[10];char*p;1bytesc[0]c[1]c[2]

3、c[9]….200030002000P2.赋值方式字符数组charstr[14];str=“IloveChina!”(错误)charstr[14]=“IloveChina!”;(正确)字符指针char*a;a=“IloveChina!”;a不是字符,而是字符串的首地址;3.对字符指针变量赋初值char*a=“IloveChina!”;等价于char*a;a=“IloveChina!”;而对数组的初始化:charstr[14]=“IloveChina!”;不能等价于charstr[14];str=“IloveChina!”数组可以

4、在变量定义时整体赋初值,但不能在赋值语句中整体赋值.4.分配内存如果定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址.而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个地址值,也就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址值,则它并未具体指向一个确定的字符数据.charstr[10];scanf(“%s”,str);char*a;scanf(“%s”,a);char*a,str[10];a=str;scanf(“%s”,a);c[0]c[1]c[2]c[9]….20003000a

5、5.指针变量的值是可以改变的Main(){char*a=“IloveChina!”;a=a+7;printf(“%s”,a);}运行结果如下:China!数组名是不能改变的charstr[]={“IloveChina!”};str=str+7;printf(“%S”,str);(错误)若定义了一个指针变量,并使它指向一个字符串,就可以用下标的形式引用指针变量所指的字符串中的字符main(){char*a=“IloveChina!”;printf(“Thesixthcharcteris%c”,a[5]);}运行结果如下:The

6、sixthcharcterise程序中虽然并未定义数组a,但字符串在内存中是以字符数组形式存放的.a[5]按*(a+5)执行,取出其单元中的值.6.用指针变量指向一个格式字符串,可以用它代替printf函数中的格式字符串char*format;format=“a=%d,b=%f”;printr(format,a,b);它相当于:printf(“a=%d,b=%f”,a,b);但是不能采用赋值语句对数组整体赋值charformat[]=“a=%d,b=%f”;printf(format,a,b);(错误)指针的加减算术

7、运算对于指向数组的指针变量,可以加上或减去一个整数n。例如:设pa是指向数组a的指针变量,则pa+n,pa-n,pa++,++pa,pa--,--pa;运算都是合法的。指针变量加或减一个整数n的意义是把指针指向的当前位置(指向某数组元素)向前或向后移动n个位置。应该注意,数组指针变量向前或向后移动一个位置和地址加1或减1在概念上是不同的。因为数组可以有不同的类型,各种类型的数组元素所占的字节长度是不同的。如指针变量加1,即向后移动1个位置表示指针变量指向下一个数据元素的首地址。而不是在原地址基础上加1。例如:inta[5],*p

8、a;pa=a;/*pa指向数组a,也是指向a[0]*/pa=pa+2;/*pa指向a[2],即pa的值为&pa[2]*/注:指针变量的加减运算只能对数组指针变量进行,对指向其它类型变量的指针变量作加减运算是毫无意义的。(3)两个指针变量之间的运算只有指向同一数组

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。