维普资讯
科 技 论 坛
中国科技信息2005年第21期 CHINASCIENCEANDTE~ OGYINFOF~ATIONDec.20O5
C语言指针的应用
李素萍 太原理工大学阳泉学院信息系 045000
摘 要:指针是c语言的重要内容,正确而灵活地使用它,可以帮助我们解决许多实际问题。本文从实例入手介绍指针的多方面的应用,以使读者进一
步地理解、掌握 。
关键词 :c语言;指针 ;应用
指针是 C语言的一个重要概念,也是 C语言 {t=nanNilname{il=name{kIname{kl=tl} fclose (fp)l
向一个重要组成部分,正确而灵活地使用它,能帮 }} }
叻我们解决许多实际问题。 voidprint(char*name{】,intn) 此例中定义了指向FILF~型结构体的指针变量
应用一,指向单变量的指针变量作函数参数,可 {intil ,函数ofpen返回一个文件指针,fp才真正有意义,
得到多个变化了的值。即函数调用可以而且只可 ofr(i=0li
得到一个返回值,而运用指针变量作参数,就可 printf(‰“”,name{i])l} 作都是通过文件指针fp完成的,若文件打开失败,则
得到多个变化了的值。如: 可以看到,在main函数中定义了指针数组 函数ofpen返回一个空值 (NULL),表示文件不能
swap (n }x,m_t}y) name,它有5个元素,初值分别是 P“ASCAL”, 成功打开,再通过文件指针 访问文件已无意义,故
{mttl B“ASIC”,F“ORTRAN”,C“”,“JAVA 的首地址, 退出程序。
t=}xl}x=y;y=t;} 这些字符串是不等长的,如果用二维字符数组处理 应用六,指向函数的指针作函数参数,可以使
mare () 时,必须指定列数,这样就需以所有字符串的最长字 一个通用函数实现各种专用功能。如:
{int*pl,*p2,a,bl 符串定义列数,浪费掉许多内存单元。同时,在osrt main()
pl=&alD2=&bI 函数中对字符串排序时,并没有改变字符串的位置, {n/tmax (int,n/t)l}
scanf(“%d,%d”,&a,&b), 只改动指~ name中各元素的指向,从而使naH nitrain (nit,int),
swap(pl,p2); 0【脂 向最小的字符串,依此类推,name{4]指向最大 intadd(nit,int)l
printf(“%d,%d”,a,b),} 的字符串,实现字符串的排序功能,这样程序的执行