C语言程序设计第二十一讲 指针(4).ppt
《C语言程序设计第二十一讲 指针(4).ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第二十一讲 指针(4).ppt(26页珍藏版)》请在沃文网上搜索。
1、C语言程序设计基础主讲人:庞新苗手机:13560715936第二十一讲:指针(4)指针数组和指向指针的指针主要内容:主要内容:1、指针数组的应用;、指针数组的应用;2、指向指针的指针;、指向指针的指针;一、一、指针数组和多级指针指针数组和多级指针用于处理二维数组或多个字符串用于处理二维数组或多个字符串指针数组指针数组定义:数组中的元素为指针变量定义:数组中的元素为指针变量定义形式:定义形式:存储类型存储类型 数据类型数据类型*数组名数组名数组长度说明数组长度说明;例例 int *p4;指针所指向变量的数据类型指针所指向变量的数据类型指针本身的存储类型指针本身的存储类型区分int *p4与int
2、 (*p)4指针数组赋值与初始化指针数组赋值与初始化赋值:main()int b23,*pb2;pb0=b0;pb1=b1;.int *pb2pb0pb1int b23123246初始化:main()int b23,*pb=b0,b1;.int *pb2pb0pb1int b23123246指针数组赋值与初始化指针数组赋值与初始化L i s p 0F o r t r a n 0B a s i c 0p0p1p2p30赋值:main()char a=Fortran;char b=Lisp;char c=Basic;char*p4;p0=a;p1=b;p2=c;p3=NULL;.或:main()c
3、har*p4;p0=Fortran;p1=Lisp;p2=Basic;p3=NULL;.初始化:main()char*p=Fortran,Lisp,Basic,NULL;.L i s p 0F o r t r a n 0B a s i c 0p0p1p2p30 char name59=“gain”,“much”,“stronger”,“point”,“bye”;char*name5=“gain”,“much”,“stronger”,“point”,“bye”;g a i n 0s t r o n g e r 0p o i n t 0m u c h 0name0name1name2name3na
4、me4b y e 0g a i n 0s t r o n g e r 0p o i n t 0m u c h 0b y e 0二维数组与指针数组区别二维数组与指针数组区别:二维数组存储空间固定字符指针数组相当于可变列长的二维数组分配内存单元=数组维数*2+各字符串长度指针数组元素的作用相当于二维数组的行名但指针数组中元素是指针变量二维数组的行名是地址常量main()int b23,*pb2;int i,j;for(i=0;i2;i+)for(j=0;j3;j+)bij=(i+1)*(j+1);pb0=b0;pb1=b1;for(i=0;i2;i+)for(j=0;j3;j+,pbi+)prin
5、tf(b%d%d:%2dn,i,j,*pbi);例例 用指针数组处理二维数组用指针数组处理二维数组int *pb2pb0pb1int b23b00 *pb0b01 *(pb0+1)b02 *(pb0+2)b10 *pb1b11 *(pb1+1)b12 *(pb1+2)123246例例 对字符串排序(简单选择排序)对字符串排序(简单选择排序)main()void sort(char *name,int n),print(char *name,int n);char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer;int n=5;sort(name
6、,n);print(name,n);void sort(char*name,int n)char*temp;int i,j,k;for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;if(k!=i)temp=namei;namei=namek;namek=temp;name0name1name2name3name4nameGreat WallFORTRANComputerFollow meBASICkjkjjji=0例例 对字符串排序(简单选择排序)对字符串排序(简单选择排序)main()void sort(char *name,int n),print(char *nam
7、e,int n);char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer;int n=5;sort(name,n);print(name,n);void sort(char*name,int n)char*temp;int i,j,k;for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;if(k!=i)temp=namei;namei=namek;namek=temp;name0name1name2name3name4nameGreat WallFORTRANComputerFollow meBASICkkjjji=1k
8、例例 对字符串排序(简单选择排序)对字符串排序(简单选择排序)main()void sort(char *name,int n),print(char *name,int n);char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer;int n=5;sort(name,n);print(name,n);void sort(char*name,int n)char*temp;int i,j,k;for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;if(k!=i)temp=namei;namei=namek;namek=te
9、mp;name0name1name2name3name4nameGreat WallFORTRANComputerFollow meBASICkkjji=2例例 对字符串排序(简单选择排序)对字符串排序(简单选择排序)main()void sort(char *name,int n),print(char *name,int n);char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer;int n=5;sort(name,n);print(name,n);void sort(char*name,int n)char*temp;int i,j,
10、k;for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;if(k!=i)temp=namei;namei=namek;namek=temp;name0name1name2name3name4nameGreat WallFORTRANComputerFollow meBASICkkji=3例例 对字符串排序(简单选择排序)对字符串排序(简单选择排序)main()void sort(char *name,int n),print(char *name,int n);char*name=Follow me,BASIC,Great Wall,FORTRAN,Computer;in
11、t n=5;sort(name,n);print(name,n);void sort(char*name,int n)char*temp;int i,j,k;for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;if(k!=i)temp=namei;namei=namek;namek=temp;name0name1name2name3name4nameGreat WallFORTRANComputerFollow meBASIC二、多级指针二、多级指针定义定义:指向指针的指针指向指针的指针一级指针一级指针:指针变量中存放目标变量的地址指针变量中存放目标变量的地址p1&p2&
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计第二十一讲 指针4 语言程序设计 第二十一 指针