北大青鸟 C语言实现 8.ppt

北大青鸟 C语言实现 8.ppt

ID:52192935

大小:268.50 KB

页数:30页

时间:2020-04-02

北大青鸟 C语言实现 8.ppt_第1页
北大青鸟 C语言实现 8.ppt_第2页
北大青鸟 C语言实现 8.ppt_第3页
北大青鸟 C语言实现 8.ppt_第4页
北大青鸟 C语言实现 8.ppt_第5页
资源描述:

《北大青鸟 C语言实现 8.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、指针第八章回顾数组的存储机制数组的定义和使用数组的初始化二维和多维数组2目标理解指针的意义掌握指针变量和指针运算符的使用掌握指针与数组的关系掌握内存分配3什么是指针?指针是一个变量,它包含另一个变量的内存地址使用指针可以间接访问数据项的值指针可以指向基本数据类型的变量(如int、char和double等)或者数组4指针可以用来做什么?从函数中返回多个值从一个函数向另一个函数传递数组和字符串通过移动指针操作数组分配内存并对其进行访问5指针变量指针声明包括类型和变量名,变量名的前面有一个*type*name;例如:int*var2;var26指针运算符&是一元运算符,它返回操作数的内存地址va

2、r2=&var1;*是&的反运算符,它也是一元运算符,返回指针指向的内存位置中的值temp=*var2;7给指针赋值2-1通过&运算符为指针赋值ptr_var=&var;通过另一个指向相同类型数据项的指针变量对指针进行赋值ptr_var2=ptr_var;8给指针赋值2-2通过指针为变量赋值*ptr_var=10;如果ptr_var指向var,则把10赋给var9指针运算2-1只能进行加法和减法运算intvar,*ptr_var;ptr_var=&var;ptr_var++;假定var存储在地址1000中,因为整数的长度是2个字节,ptr_var的值将是100210指针运算2-2指针递增时

3、,将指向其类型的下一个元素的内存位置,反之亦然操作意义++ptr_var或ptr_var++指向var后面的下一个整数--ptr_var或ptr_var--指向var前面的整数ptr_var+i指向var后面的第i个整数ptr_var-i指向var前面的第i个整数++(*ptr_var)或(*ptr_var)++将var的值加1*(ptr_var++)取出var后面的下一个整数的值11指针比较前提:两个指针都指向相同类型的变量假设ptr_a和ptr_b分别指向a和b操作意义ptr_a

4、一位置则返回trueptr_a==ptr_b如果两个指针指向同一位置则返回trueptr_a!=ptr_b如果两个指针指向不同位置则返回trueptr_a==NULL如果ptr_a是空值则返回true12指针与一维数组3-1数组元素的地址可以用两种方式表示在数组元素前面加“&”符号&ary[2]数组名+下标ary+213指针与一维数组3-2#includevoidmain(){staticintary[10]={1,2,3,4,5,6,7,8,9,10};inti;for(i=0;i<10;i++){printf("i=%d,ary[i]=%d,*(ary+i)=%d

5、",i,ary[i],*(ary+i));printf("&ary[i]=%X,ary+i=%X",&ary[i],ary+i);}}值地址14指针与一维数组3-3演示:执行程序,观察并分析输出结果15指针与多维数组二维数组可以定义为一个指向一组连续的一维数组的指针data_type(*ptr_var)[expr];16指针与字符串2-1#include#includevoidmain(){chara,str[81],*ptr;printf("Enterasentence:");gets(str);printf("Entercharactert

6、osearchfor:");a=getche();ptr=strchr(str,a);/*returnpointertochar*/printf("Stringstartsataddress:%u",str);printf("Firstoccurrenceofthecharacterisat:%u",ptr);printf(“Positionoffirstoccurrenceis:%d”,ptr-str);}指针运算17指针与字符串2-2演示:执行程序,观察并分析输出结果18分配内存2-1malloc()是最常用的函数之一它允许从空闲内存池中分配内存malloc()的参数是代表

7、所需字节数的整数19分配内存2-2#include#includevoidmain(){int*p,n,i,j,temp;printf("Enternumberofelementsinthearray:");scanf("%d",&n);p=(int*)malloc(n*sizeof(int));for(i=0;i

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

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

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