(6.38)-第37课(8.6节-指针数组与多级指针)_第1页
(6.38)-第37课(8.6节-指针数组与多级指针)_第2页
(6.38)-第37课(8.6节-指针数组与多级指针)_第3页
(6.38)-第37课(8.6节-指针数组与多级指针)_第4页
(6.38)-第37课(8.6节-指针数组与多级指针)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

指针数组与多级指针指针的使用指针数组概念数组的所有元素都是指针类型数据(指针变量)定义形式类型名*数组名[元素个数];例如char*name[10];具体应用一般用于处理一组字符串数据指针数组例char*name[]={"Tom","Mike","Mary","Peter"};name[0]name[1]name[2]name[3]Tom\0Mike\0Mary\0Peter\0输出每个字符串:for(i=0;i<4;i++)puts(name[i]);【例1:】将若干字符串按字母顺序(由小到大)输出解题思路定义一个指针数组name,用各字符串对它进行初始化,即把各字符串中第1个字符的地址赋给指针数组的各元素然后用选择法排序,但不是移动字符串,而是改变指针数组的各元素的指向程序实现#include<stdio.h>#include<string.h>voidmain(){voidsort(char*name[],intn);

voidprint(char*name[],intn);char*name[]={"Followme","BASIC","GreatWall","FORTRAN","Computerdesign"};intn=5;

sort(name,n);//调用sort函数,对字符串排序

print(name,n);//调用print函数,输出字符串}voidsort(char*name[],intn){char*temp;inti,j,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(strcmp(name[k],name[j])>0)k=j;if(k!=i){temp=name[i];name[i]=name[k];name[k]=temp;}}}voidprint(char*name[],intn){inti;for(i=0;i<n;i++)printf("%s\n",name[i];}排序后排序前指针数组与数组指针的比较int*p[3];①表明p是数组②表明p中的单元都是指针③表明p中的单元都是int型的指针指针数组

int(*p)[3];①表明p是指针变量②表明p指向的是长度为3的数组③表明p指向的是int型数组数组指针指针数组二维数组指针变量定义int*p[20];int(*p)[20];变量性质p是数组名,不是指针变量,不可对p赋值P是指针变量,不是数组名,可对p赋值指向指针的指针---多级指针一级指针:指针变量中存放目标变量的地址

int*p;

inti=3;p=&i;*p=5;例&i3P(指针变量)i(整型变量)一级指针单级间接寻址二级指针:指针变量中存放一级指针变量的地址

int**p1;

int*p2;inti=3;p2=&i;p1=&p2;**p1=5;例p1&p2&i3P2(指针变量)i(整型变量)二级指针一级指针目标变量二级间接寻址定义形式:[存储类型]数据类型**指针变量名;指针本身的存储类型最终目标变量的数据类型如果:char*name[]={"Followme"……};

char**p;p=name+2;

则:printf(“%s\n”,*p);输出:GreatWallname[0]name[1]name[2]name[3]name[4]nameGreatWallFORTRANComputerFollowmeBASICnamep说明一级指针变量只能取得普通变量的地址,二级指针变量只能取得一级指针变量的地址,三级、四级指针变量以此类推……即:一个n级的指针变量只允许指向一个n-1级的指针变量单元二级指针变量主要用于处理多个字符串【例2:】用二级指针变量处理字符串#include<stdio.h>voidmain(){char*name[]={"Followme","BASIC","GreatWall","FORTRAN","Computerdesign"};char**p;inti;for(i=0;i<5;i++){p=name+i;printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论